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
@@ -0,0 +1,914 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module Moov
14
+ extend T::Sig
15
+ class Invoices
16
+ extend T::Sig
17
+
18
+
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url base_url, url_variables
39
+ end
40
+
41
+
42
+ sig { params(create_invoice: Models::Components::CreateInvoice, account_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::CreateInvoiceResponse) }
43
+ def create_invoice(create_invoice:, account_id:, x_moov_version: nil, timeout_ms: nil)
44
+ # create_invoice - Create an invoice for a Moov account.
45
+ #
46
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
47
+ # you'll need to specify the `/accounts/{accountID}/invoices.write` scope.
48
+ request = Models::Operations::CreateInvoiceRequest.new(
49
+ account_id: account_id,
50
+ create_invoice: create_invoice,
51
+ x_moov_version: x_moov_version
52
+ )
53
+ url, params = @sdk_configuration.get_server_details
54
+ base_url = Utils.template_url(url, params)
55
+ url = Utils.generate_url(
56
+ Models::Operations::CreateInvoiceRequest,
57
+ base_url,
58
+ '/accounts/{accountID}/invoices',
59
+ request,
60
+ @sdk_configuration.globals
61
+ )
62
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
63
+ headers = T.cast(headers, T::Hash[String, String])
64
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :create_invoice, :json)
65
+ headers['content-type'] = req_content_type
66
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
67
+
68
+ if form && !form.empty?
69
+ body = Utils.encode_form(form)
70
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
71
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
72
+ else
73
+ body = data
74
+ end
75
+ headers['Accept'] = 'application/json'
76
+ headers['user-agent'] = @sdk_configuration.user_agent
77
+
78
+ security = @sdk_configuration.security_source&.call
79
+
80
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
81
+ timeout ||= @sdk_configuration.timeout
82
+
83
+
84
+ connection = @sdk_configuration.client
85
+
86
+ hook_ctx = SDKHooks::HookContext.new(
87
+ config: @sdk_configuration,
88
+ base_url: base_url,
89
+ oauth2_scopes: nil,
90
+ operation_id: 'createInvoice',
91
+ security_source: @sdk_configuration.security_source
92
+ )
93
+
94
+ error = T.let(nil, T.nilable(StandardError))
95
+ http_response = T.let(nil, T.nilable(Faraday::Response))
96
+
97
+
98
+ begin
99
+ http_response = T.must(connection).post(url) do |req|
100
+ req.body = body
101
+ req.headers.merge!(headers)
102
+ req.options.timeout = timeout unless timeout.nil?
103
+ Utils.configure_request_security(req, security)
104
+
105
+ @sdk_configuration.hooks.before_request(
106
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
107
+ hook_ctx: hook_ctx
108
+ ),
109
+ request: req
110
+ )
111
+ end
112
+ rescue StandardError => e
113
+ error = e
114
+ ensure
115
+ if http_response.nil? || Utils.error_status?(http_response.status)
116
+ http_response = @sdk_configuration.hooks.after_error(
117
+ error: error,
118
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
119
+ hook_ctx: hook_ctx
120
+ ),
121
+ response: http_response
122
+ )
123
+ else
124
+ http_response = @sdk_configuration.hooks.after_success(
125
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
126
+ hook_ctx: hook_ctx
127
+ ),
128
+ response: http_response
129
+ )
130
+ end
131
+
132
+ if http_response.nil?
133
+ raise error if !error.nil?
134
+ raise 'no response'
135
+ end
136
+ end
137
+
138
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
139
+ if Utils.match_status_code(http_response.status, ['201'])
140
+ if Utils.match_content_type(content_type, 'application/json')
141
+ http_response = @sdk_configuration.hooks.after_success(
142
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
143
+ hook_ctx: hook_ctx
144
+ ),
145
+ response: http_response
146
+ )
147
+ response_data = http_response.env.response_body
148
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::Invoice)
149
+ response = Models::Operations::CreateInvoiceResponse.new(
150
+ status_code: http_response.status,
151
+ content_type: content_type,
152
+ raw_response: http_response,
153
+ headers: http_response.headers,
154
+ invoice: T.unsafe(obj)
155
+ )
156
+
157
+ return response
158
+ else
159
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
160
+ end
161
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
162
+ if Utils.match_content_type(content_type, 'application/json')
163
+ http_response = @sdk_configuration.hooks.after_success(
164
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
165
+ hook_ctx: hook_ctx
166
+ ),
167
+ response: http_response
168
+ )
169
+ response_data = http_response.env.response_body
170
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
171
+ obj.raw_response = http_response
172
+ raise obj
173
+ else
174
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
175
+ end
176
+ elsif Utils.match_status_code(http_response.status, ['422'])
177
+ if Utils.match_content_type(content_type, 'application/json')
178
+ http_response = @sdk_configuration.hooks.after_success(
179
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
180
+ hook_ctx: hook_ctx
181
+ ),
182
+ response: http_response
183
+ )
184
+ response_data = http_response.env.response_body
185
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::CreateInvoiceError)
186
+ obj.raw_response = http_response
187
+ raise obj
188
+ else
189
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
190
+ end
191
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
192
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
193
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
194
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
195
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
196
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
197
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
198
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
199
+ else
200
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
201
+
202
+ end
203
+ end
204
+
205
+
206
+ sig { params(request: Models::Operations::ListInvoicesRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListInvoicesResponse) }
207
+ def list_invoices(request:, timeout_ms: nil)
208
+ # list_invoices - List all the invoices created under a Moov account.
209
+ #
210
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
211
+ # you'll need to specify the `/accounts/{accountID}/invoices.read` scope.
212
+ url, params = @sdk_configuration.get_server_details
213
+ base_url = Utils.template_url(url, params)
214
+ url = Utils.generate_url(
215
+ Models::Operations::ListInvoicesRequest,
216
+ base_url,
217
+ '/accounts/{accountID}/invoices',
218
+ request,
219
+ @sdk_configuration.globals
220
+ )
221
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
222
+ headers = T.cast(headers, T::Hash[String, String])
223
+ query_params = Utils.get_query_params(Models::Operations::ListInvoicesRequest, request, nil, @sdk_configuration.globals)
224
+ headers['Accept'] = 'application/json'
225
+ headers['user-agent'] = @sdk_configuration.user_agent
226
+
227
+ security = @sdk_configuration.security_source&.call
228
+
229
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
230
+ timeout ||= @sdk_configuration.timeout
231
+
232
+
233
+ connection = @sdk_configuration.client
234
+
235
+ hook_ctx = SDKHooks::HookContext.new(
236
+ config: @sdk_configuration,
237
+ base_url: base_url,
238
+ oauth2_scopes: nil,
239
+ operation_id: 'listInvoices',
240
+ security_source: @sdk_configuration.security_source
241
+ )
242
+
243
+ error = T.let(nil, T.nilable(StandardError))
244
+ http_response = T.let(nil, T.nilable(Faraday::Response))
245
+
246
+
247
+ begin
248
+ http_response = T.must(connection).get(url) do |req|
249
+ req.headers.merge!(headers)
250
+ req.options.timeout = timeout unless timeout.nil?
251
+ req.params = query_params
252
+ Utils.configure_request_security(req, security)
253
+
254
+ @sdk_configuration.hooks.before_request(
255
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
256
+ hook_ctx: hook_ctx
257
+ ),
258
+ request: req
259
+ )
260
+ end
261
+ rescue StandardError => e
262
+ error = e
263
+ ensure
264
+ if http_response.nil? || Utils.error_status?(http_response.status)
265
+ http_response = @sdk_configuration.hooks.after_error(
266
+ error: error,
267
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
268
+ hook_ctx: hook_ctx
269
+ ),
270
+ response: http_response
271
+ )
272
+ else
273
+ http_response = @sdk_configuration.hooks.after_success(
274
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
275
+ hook_ctx: hook_ctx
276
+ ),
277
+ response: http_response
278
+ )
279
+ end
280
+
281
+ if http_response.nil?
282
+ raise error if !error.nil?
283
+ raise 'no response'
284
+ end
285
+ end
286
+
287
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
288
+ if Utils.match_status_code(http_response.status, ['200'])
289
+ if Utils.match_content_type(content_type, 'application/json')
290
+ http_response = @sdk_configuration.hooks.after_success(
291
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
292
+ hook_ctx: hook_ctx
293
+ ),
294
+ response: http_response
295
+ )
296
+ response_data = http_response.env.response_body
297
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Components::Invoice))
298
+ response = Models::Operations::ListInvoicesResponse.new(
299
+ status_code: http_response.status,
300
+ content_type: content_type,
301
+ raw_response: http_response,
302
+ headers: http_response.headers,
303
+ invoices: T.unsafe(obj)
304
+ )
305
+
306
+ return response
307
+ else
308
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
309
+ end
310
+ elsif Utils.match_status_code(http_response.status, ['422'])
311
+ if Utils.match_content_type(content_type, 'application/json')
312
+ http_response = @sdk_configuration.hooks.after_success(
313
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
314
+ hook_ctx: hook_ctx
315
+ ),
316
+ response: http_response
317
+ )
318
+ response_data = http_response.env.response_body
319
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ListInvoicesValidationError)
320
+ obj.raw_response = http_response
321
+ raise obj
322
+ else
323
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
324
+ end
325
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '429'])
326
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
327
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
328
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
329
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
330
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
331
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
332
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
333
+ else
334
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
335
+
336
+ end
337
+ end
338
+
339
+
340
+ sig { params(account_id: ::String, invoice_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetInvoiceResponse) }
341
+ def get_invoice(account_id:, invoice_id:, x_moov_version: nil, timeout_ms: nil)
342
+ # get_invoice - Retrieve an invoice by ID.
343
+ #
344
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
345
+ # you'll need to specify the `/accounts/{accountID}/invoices.read` scope.
346
+ request = Models::Operations::GetInvoiceRequest.new(
347
+ account_id: account_id,
348
+ invoice_id: invoice_id,
349
+ x_moov_version: x_moov_version
350
+ )
351
+ url, params = @sdk_configuration.get_server_details
352
+ base_url = Utils.template_url(url, params)
353
+ url = Utils.generate_url(
354
+ Models::Operations::GetInvoiceRequest,
355
+ base_url,
356
+ '/accounts/{accountID}/invoices/{invoiceID}',
357
+ request,
358
+ @sdk_configuration.globals
359
+ )
360
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
361
+ headers = T.cast(headers, T::Hash[String, String])
362
+ headers['Accept'] = 'application/json'
363
+ headers['user-agent'] = @sdk_configuration.user_agent
364
+
365
+ security = @sdk_configuration.security_source&.call
366
+
367
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
368
+ timeout ||= @sdk_configuration.timeout
369
+
370
+
371
+ connection = @sdk_configuration.client
372
+
373
+ hook_ctx = SDKHooks::HookContext.new(
374
+ config: @sdk_configuration,
375
+ base_url: base_url,
376
+ oauth2_scopes: nil,
377
+ operation_id: 'getInvoice',
378
+ security_source: @sdk_configuration.security_source
379
+ )
380
+
381
+ error = T.let(nil, T.nilable(StandardError))
382
+ http_response = T.let(nil, T.nilable(Faraday::Response))
383
+
384
+
385
+ begin
386
+ http_response = T.must(connection).get(url) do |req|
387
+ req.headers.merge!(headers)
388
+ req.options.timeout = timeout unless timeout.nil?
389
+ Utils.configure_request_security(req, security)
390
+
391
+ @sdk_configuration.hooks.before_request(
392
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
393
+ hook_ctx: hook_ctx
394
+ ),
395
+ request: req
396
+ )
397
+ end
398
+ rescue StandardError => e
399
+ error = e
400
+ ensure
401
+ if http_response.nil? || Utils.error_status?(http_response.status)
402
+ http_response = @sdk_configuration.hooks.after_error(
403
+ error: error,
404
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
405
+ hook_ctx: hook_ctx
406
+ ),
407
+ response: http_response
408
+ )
409
+ else
410
+ http_response = @sdk_configuration.hooks.after_success(
411
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
412
+ hook_ctx: hook_ctx
413
+ ),
414
+ response: http_response
415
+ )
416
+ end
417
+
418
+ if http_response.nil?
419
+ raise error if !error.nil?
420
+ raise 'no response'
421
+ end
422
+ end
423
+
424
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
425
+ if Utils.match_status_code(http_response.status, ['200'])
426
+ if Utils.match_content_type(content_type, 'application/json')
427
+ http_response = @sdk_configuration.hooks.after_success(
428
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
429
+ hook_ctx: hook_ctx
430
+ ),
431
+ response: http_response
432
+ )
433
+ response_data = http_response.env.response_body
434
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::Invoice)
435
+ response = Models::Operations::GetInvoiceResponse.new(
436
+ status_code: http_response.status,
437
+ content_type: content_type,
438
+ raw_response: http_response,
439
+ headers: http_response.headers,
440
+ invoice: T.unsafe(obj)
441
+ )
442
+
443
+ return response
444
+ else
445
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
446
+ end
447
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
448
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
449
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
450
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
451
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
452
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
453
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
454
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
455
+ else
456
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
457
+
458
+ end
459
+ end
460
+
461
+
462
+ sig { params(update_invoice: Models::Components::UpdateInvoice, account_id: ::String, invoice_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateInvoiceResponse) }
463
+ def update_invoice(update_invoice:, account_id:, invoice_id:, x_moov_version: nil, timeout_ms: nil)
464
+ # update_invoice - Updates an invoice.
465
+ #
466
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
467
+ # you'll need to specify the `/accounts/{accountID}/invoices.write` scope.
468
+ request = Models::Operations::UpdateInvoiceRequest.new(
469
+ account_id: account_id,
470
+ invoice_id: invoice_id,
471
+ update_invoice: update_invoice,
472
+ x_moov_version: x_moov_version
473
+ )
474
+ url, params = @sdk_configuration.get_server_details
475
+ base_url = Utils.template_url(url, params)
476
+ url = Utils.generate_url(
477
+ Models::Operations::UpdateInvoiceRequest,
478
+ base_url,
479
+ '/accounts/{accountID}/invoices/{invoiceID}',
480
+ request,
481
+ @sdk_configuration.globals
482
+ )
483
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
484
+ headers = T.cast(headers, T::Hash[String, String])
485
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :update_invoice, :json)
486
+ headers['content-type'] = req_content_type
487
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
488
+
489
+ if form && !form.empty?
490
+ body = Utils.encode_form(form)
491
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
492
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
493
+ else
494
+ body = data
495
+ end
496
+ headers['Accept'] = 'application/json'
497
+ headers['user-agent'] = @sdk_configuration.user_agent
498
+
499
+ security = @sdk_configuration.security_source&.call
500
+
501
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
502
+ timeout ||= @sdk_configuration.timeout
503
+
504
+
505
+ connection = @sdk_configuration.client
506
+
507
+ hook_ctx = SDKHooks::HookContext.new(
508
+ config: @sdk_configuration,
509
+ base_url: base_url,
510
+ oauth2_scopes: nil,
511
+ operation_id: 'updateInvoice',
512
+ security_source: @sdk_configuration.security_source
513
+ )
514
+
515
+ error = T.let(nil, T.nilable(StandardError))
516
+ http_response = T.let(nil, T.nilable(Faraday::Response))
517
+
518
+
519
+ begin
520
+ http_response = T.must(connection).patch(url) do |req|
521
+ req.body = body
522
+ req.headers.merge!(headers)
523
+ req.options.timeout = timeout unless timeout.nil?
524
+ Utils.configure_request_security(req, security)
525
+
526
+ @sdk_configuration.hooks.before_request(
527
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
528
+ hook_ctx: hook_ctx
529
+ ),
530
+ request: req
531
+ )
532
+ end
533
+ rescue StandardError => e
534
+ error = e
535
+ ensure
536
+ if http_response.nil? || Utils.error_status?(http_response.status)
537
+ http_response = @sdk_configuration.hooks.after_error(
538
+ error: error,
539
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
540
+ hook_ctx: hook_ctx
541
+ ),
542
+ response: http_response
543
+ )
544
+ else
545
+ http_response = @sdk_configuration.hooks.after_success(
546
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
547
+ hook_ctx: hook_ctx
548
+ ),
549
+ response: http_response
550
+ )
551
+ end
552
+
553
+ if http_response.nil?
554
+ raise error if !error.nil?
555
+ raise 'no response'
556
+ end
557
+ end
558
+
559
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
560
+ if Utils.match_status_code(http_response.status, ['200'])
561
+ if Utils.match_content_type(content_type, 'application/json')
562
+ http_response = @sdk_configuration.hooks.after_success(
563
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
564
+ hook_ctx: hook_ctx
565
+ ),
566
+ response: http_response
567
+ )
568
+ response_data = http_response.env.response_body
569
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::Invoice)
570
+ response = Models::Operations::UpdateInvoiceResponse.new(
571
+ status_code: http_response.status,
572
+ content_type: content_type,
573
+ raw_response: http_response,
574
+ headers: http_response.headers,
575
+ invoice: T.unsafe(obj)
576
+ )
577
+
578
+ return response
579
+ else
580
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
581
+ end
582
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
583
+ if Utils.match_content_type(content_type, 'application/json')
584
+ http_response = @sdk_configuration.hooks.after_success(
585
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
586
+ hook_ctx: hook_ctx
587
+ ),
588
+ response: http_response
589
+ )
590
+ response_data = http_response.env.response_body
591
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
592
+ obj.raw_response = http_response
593
+ raise obj
594
+ else
595
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
596
+ end
597
+ elsif Utils.match_status_code(http_response.status, ['422'])
598
+ if Utils.match_content_type(content_type, 'application/json')
599
+ http_response = @sdk_configuration.hooks.after_success(
600
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
601
+ hook_ctx: hook_ctx
602
+ ),
603
+ response: http_response
604
+ )
605
+ response_data = http_response.env.response_body
606
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UpdateInvoiceError)
607
+ obj.raw_response = http_response
608
+ raise obj
609
+ else
610
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
611
+ end
612
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
613
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
614
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
615
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
616
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
617
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
618
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
619
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
620
+ else
621
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
622
+
623
+ end
624
+ end
625
+
626
+
627
+ sig { params(create_invoice_payment: Models::Components::CreateInvoicePayment, account_id: ::String, invoice_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::CreateInvoicePaymentResponse) }
628
+ def create_invoice_payment(create_invoice_payment:, account_id:, invoice_id:, x_moov_version: nil, timeout_ms: nil)
629
+ # create_invoice_payment - Creates a payment resource to represent that an invoice was paid outside of the Moov platform.
630
+ # If a payment link was created for the invoice, the corresponding payment link is canceled, but a receipt is still sent.
631
+ #
632
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
633
+ # you'll need to specify the `/accounts/{accountID}/invoices.write` scope.
634
+ request = Models::Operations::CreateInvoicePaymentRequest.new(
635
+ account_id: account_id,
636
+ invoice_id: invoice_id,
637
+ create_invoice_payment: create_invoice_payment,
638
+ x_moov_version: x_moov_version
639
+ )
640
+ url, params = @sdk_configuration.get_server_details
641
+ base_url = Utils.template_url(url, params)
642
+ url = Utils.generate_url(
643
+ Models::Operations::CreateInvoicePaymentRequest,
644
+ base_url,
645
+ '/accounts/{accountID}/invoices/{invoiceID}/payments',
646
+ request,
647
+ @sdk_configuration.globals
648
+ )
649
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
650
+ headers = T.cast(headers, T::Hash[String, String])
651
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :create_invoice_payment, :json)
652
+ headers['content-type'] = req_content_type
653
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
654
+
655
+ if form && !form.empty?
656
+ body = Utils.encode_form(form)
657
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
658
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
659
+ else
660
+ body = data
661
+ end
662
+ headers['Accept'] = 'application/json'
663
+ headers['user-agent'] = @sdk_configuration.user_agent
664
+
665
+ security = @sdk_configuration.security_source&.call
666
+
667
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
668
+ timeout ||= @sdk_configuration.timeout
669
+
670
+
671
+ connection = @sdk_configuration.client
672
+
673
+ hook_ctx = SDKHooks::HookContext.new(
674
+ config: @sdk_configuration,
675
+ base_url: base_url,
676
+ oauth2_scopes: nil,
677
+ operation_id: 'createInvoicePayment',
678
+ security_source: @sdk_configuration.security_source
679
+ )
680
+
681
+ error = T.let(nil, T.nilable(StandardError))
682
+ http_response = T.let(nil, T.nilable(Faraday::Response))
683
+
684
+
685
+ begin
686
+ http_response = T.must(connection).post(url) do |req|
687
+ req.body = body
688
+ req.headers.merge!(headers)
689
+ req.options.timeout = timeout unless timeout.nil?
690
+ Utils.configure_request_security(req, security)
691
+
692
+ @sdk_configuration.hooks.before_request(
693
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
694
+ hook_ctx: hook_ctx
695
+ ),
696
+ request: req
697
+ )
698
+ end
699
+ rescue StandardError => e
700
+ error = e
701
+ ensure
702
+ if http_response.nil? || Utils.error_status?(http_response.status)
703
+ http_response = @sdk_configuration.hooks.after_error(
704
+ error: error,
705
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
706
+ hook_ctx: hook_ctx
707
+ ),
708
+ response: http_response
709
+ )
710
+ else
711
+ http_response = @sdk_configuration.hooks.after_success(
712
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
713
+ hook_ctx: hook_ctx
714
+ ),
715
+ response: http_response
716
+ )
717
+ end
718
+
719
+ if http_response.nil?
720
+ raise error if !error.nil?
721
+ raise 'no response'
722
+ end
723
+ end
724
+
725
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
726
+ if Utils.match_status_code(http_response.status, ['200'])
727
+ if Utils.match_content_type(content_type, 'application/json')
728
+ http_response = @sdk_configuration.hooks.after_success(
729
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
730
+ hook_ctx: hook_ctx
731
+ ),
732
+ response: http_response
733
+ )
734
+ response_data = http_response.env.response_body
735
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::InvoicePayment)
736
+ response = Models::Operations::CreateInvoicePaymentResponse.new(
737
+ status_code: http_response.status,
738
+ content_type: content_type,
739
+ raw_response: http_response,
740
+ headers: http_response.headers,
741
+ invoice_payment: T.unsafe(obj)
742
+ )
743
+
744
+ return response
745
+ else
746
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
747
+ end
748
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
749
+ if Utils.match_content_type(content_type, 'application/json')
750
+ http_response = @sdk_configuration.hooks.after_success(
751
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
752
+ hook_ctx: hook_ctx
753
+ ),
754
+ response: http_response
755
+ )
756
+ response_data = http_response.env.response_body
757
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
758
+ obj.raw_response = http_response
759
+ raise obj
760
+ else
761
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
762
+ end
763
+ elsif Utils.match_status_code(http_response.status, ['422'])
764
+ if Utils.match_content_type(content_type, 'application/json')
765
+ http_response = @sdk_configuration.hooks.after_success(
766
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
767
+ hook_ctx: hook_ctx
768
+ ),
769
+ response: http_response
770
+ )
771
+ response_data = http_response.env.response_body
772
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::CreateInvoicePaymentError)
773
+ obj.raw_response = http_response
774
+ raise obj
775
+ else
776
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
777
+ end
778
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
779
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
780
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
781
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
782
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
783
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
784
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
785
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
786
+ else
787
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
788
+
789
+ end
790
+ end
791
+
792
+
793
+ sig { params(account_id: ::String, invoice_id: ::String, x_moov_version: T.nilable(::String), timeout_ms: T.nilable(Integer)).returns(Models::Operations::ListInvoicePaymentsResponse) }
794
+ def list_invoice_payments(account_id:, invoice_id:, x_moov_version: nil, timeout_ms: nil)
795
+ # list_invoice_payments - List all the payments made towards an invoice.
796
+ #
797
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
798
+ # you'll need to specify the `/accounts/{accountID}/invoices.read` scope.
799
+ request = Models::Operations::ListInvoicePaymentsRequest.new(
800
+ account_id: account_id,
801
+ invoice_id: invoice_id,
802
+ x_moov_version: x_moov_version
803
+ )
804
+ url, params = @sdk_configuration.get_server_details
805
+ base_url = Utils.template_url(url, params)
806
+ url = Utils.generate_url(
807
+ Models::Operations::ListInvoicePaymentsRequest,
808
+ base_url,
809
+ '/accounts/{accountID}/invoices/{invoiceID}/payments',
810
+ request,
811
+ @sdk_configuration.globals
812
+ )
813
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
814
+ headers = T.cast(headers, T::Hash[String, String])
815
+ headers['Accept'] = 'application/json'
816
+ headers['user-agent'] = @sdk_configuration.user_agent
817
+
818
+ security = @sdk_configuration.security_source&.call
819
+
820
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
821
+ timeout ||= @sdk_configuration.timeout
822
+
823
+
824
+ connection = @sdk_configuration.client
825
+
826
+ hook_ctx = SDKHooks::HookContext.new(
827
+ config: @sdk_configuration,
828
+ base_url: base_url,
829
+ oauth2_scopes: nil,
830
+ operation_id: 'listInvoicePayments',
831
+ security_source: @sdk_configuration.security_source
832
+ )
833
+
834
+ error = T.let(nil, T.nilable(StandardError))
835
+ http_response = T.let(nil, T.nilable(Faraday::Response))
836
+
837
+
838
+ begin
839
+ http_response = T.must(connection).get(url) do |req|
840
+ req.headers.merge!(headers)
841
+ req.options.timeout = timeout unless timeout.nil?
842
+ Utils.configure_request_security(req, security)
843
+
844
+ @sdk_configuration.hooks.before_request(
845
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
846
+ hook_ctx: hook_ctx
847
+ ),
848
+ request: req
849
+ )
850
+ end
851
+ rescue StandardError => e
852
+ error = e
853
+ ensure
854
+ if http_response.nil? || Utils.error_status?(http_response.status)
855
+ http_response = @sdk_configuration.hooks.after_error(
856
+ error: error,
857
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
858
+ hook_ctx: hook_ctx
859
+ ),
860
+ response: http_response
861
+ )
862
+ else
863
+ http_response = @sdk_configuration.hooks.after_success(
864
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
865
+ hook_ctx: hook_ctx
866
+ ),
867
+ response: http_response
868
+ )
869
+ end
870
+
871
+ if http_response.nil?
872
+ raise error if !error.nil?
873
+ raise 'no response'
874
+ end
875
+ end
876
+
877
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
878
+ if Utils.match_status_code(http_response.status, ['200'])
879
+ if Utils.match_content_type(content_type, 'application/json')
880
+ http_response = @sdk_configuration.hooks.after_success(
881
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
882
+ hook_ctx: hook_ctx
883
+ ),
884
+ response: http_response
885
+ )
886
+ response_data = http_response.env.response_body
887
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Components::InvoicePayment))
888
+ response = Models::Operations::ListInvoicePaymentsResponse.new(
889
+ status_code: http_response.status,
890
+ content_type: content_type,
891
+ raw_response: http_response,
892
+ headers: http_response.headers,
893
+ invoice_payments: T.unsafe(obj)
894
+ )
895
+
896
+ return response
897
+ else
898
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
899
+ end
900
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '429'])
901
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
902
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
903
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
904
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
905
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
906
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
907
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
908
+ else
909
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
910
+
911
+ end
912
+ end
913
+ end
914
+ end