moovio_sdk 0.11.6__py3-none-any.whl → 0.13.0__py3-none-any.whl

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 (144) hide show
  1. moovio_sdk/_version.py +3 -3
  2. moovio_sdk/account_terminal_applications.py +70 -186
  3. moovio_sdk/accounts.py +168 -408
  4. moovio_sdk/adjustments.py +28 -84
  5. moovio_sdk/apple_pay.py +102 -236
  6. moovio_sdk/authentication.py +50 -102
  7. moovio_sdk/avatars.py +10 -38
  8. moovio_sdk/bank_accounts.py +174 -420
  9. moovio_sdk/basesdk.py +4 -4
  10. moovio_sdk/branding.py +106 -198
  11. moovio_sdk/capabilities.py +76 -180
  12. moovio_sdk/card_issuing.py +94 -228
  13. moovio_sdk/cards.py +94 -232
  14. moovio_sdk/disputes.py +204 -500
  15. moovio_sdk/end_to_end_encryption.py +28 -80
  16. moovio_sdk/enriched_address.py +14 -44
  17. moovio_sdk/enriched_profile.py +14 -44
  18. moovio_sdk/fee_plans.py +116 -314
  19. moovio_sdk/files.py +52 -138
  20. moovio_sdk/industries.py +14 -44
  21. moovio_sdk/institutions.py +36 -92
  22. moovio_sdk/issuing_transactions.py +70 -220
  23. moovio_sdk/models/components/__init__.py +244 -0
  24. moovio_sdk/models/components/businesspresence.py +13 -0
  25. moovio_sdk/models/components/cardacceptancemethods.py +37 -0
  26. moovio_sdk/models/components/cardacceptancemethodserror.py +27 -0
  27. moovio_sdk/models/components/collectfunds.py +25 -0
  28. moovio_sdk/models/components/collectfundsach.py +18 -0
  29. moovio_sdk/models/components/collectfundsacherror.py +21 -0
  30. moovio_sdk/models/components/collectfundscardpayments.py +41 -0
  31. moovio_sdk/models/components/collectfundscardpaymentserror.py +43 -0
  32. moovio_sdk/models/components/collectfundserror.py +25 -0
  33. moovio_sdk/models/components/createdtransfer.py +5 -0
  34. moovio_sdk/models/components/createticket.py +24 -0
  35. moovio_sdk/models/components/createticketcontacterror.py +17 -0
  36. moovio_sdk/models/components/createtransfer.py +5 -0
  37. moovio_sdk/models/components/estimatedactivity.py +30 -0
  38. moovio_sdk/models/components/estimatedactivityerror.py +27 -0
  39. moovio_sdk/models/components/fulfillment.py +19 -0
  40. moovio_sdk/models/components/fulfillmenterror.py +17 -0
  41. moovio_sdk/models/components/fulfillmentmethod.py +16 -0
  42. moovio_sdk/models/components/fulfillmenttimeframe.py +15 -0
  43. moovio_sdk/models/components/geographicreach.py +10 -0
  44. moovio_sdk/models/components/moneytransfer.py +30 -0
  45. moovio_sdk/models/components/moneytransfererror.py +30 -0
  46. moovio_sdk/models/components/moneytransferpullfromcard.py +18 -0
  47. moovio_sdk/models/components/moneytransferpullfromcarderror.py +21 -0
  48. moovio_sdk/models/components/moneytransferpushtocard.py +18 -0
  49. moovio_sdk/models/components/moneytransferpushtocarderror.py +21 -0
  50. moovio_sdk/models/components/monthlyvolumerange.py +17 -0
  51. moovio_sdk/models/components/pendinglitigation.py +17 -0
  52. moovio_sdk/models/components/refundpolicy.py +16 -0
  53. moovio_sdk/models/components/sendfunds.py +26 -0
  54. moovio_sdk/models/components/sendfundsach.py +18 -0
  55. moovio_sdk/models/components/sendfundsacherror.py +21 -0
  56. moovio_sdk/models/components/sendfundserror.py +29 -0
  57. moovio_sdk/models/components/sendfundspushtocard.py +18 -0
  58. moovio_sdk/models/components/sendfundspushtocarderror.py +21 -0
  59. moovio_sdk/models/components/sendfundsrtp.py +18 -0
  60. moovio_sdk/models/components/sendfundsrtperror.py +21 -0
  61. moovio_sdk/models/components/ticket.py +44 -0
  62. moovio_sdk/models/components/ticketcontact.py +17 -0
  63. moovio_sdk/models/components/ticketmessage.py +21 -0
  64. moovio_sdk/models/components/ticketstatus.py +11 -0
  65. moovio_sdk/models/components/transfer.py +5 -0
  66. moovio_sdk/models/components/underwriting.py +67 -20
  67. moovio_sdk/models/components/updateticket.py +19 -0
  68. moovio_sdk/models/components/updateticketstatus.py +8 -0
  69. moovio_sdk/models/components/upsertunderwriting.py +56 -0
  70. moovio_sdk/models/components/volumesharebycustomertype.py +20 -0
  71. moovio_sdk/models/components/volumesharebycustomertypeerror.py +20 -0
  72. moovio_sdk/models/components/webhookdata.py +10 -10
  73. moovio_sdk/models/components/webhookdatatransfercreated.py +5 -1
  74. moovio_sdk/models/components/webhookdatatransferupdated.py +5 -1
  75. moovio_sdk/models/errors/__init__.py +27 -0
  76. moovio_sdk/models/errors/accountterminalapplicationerror.py +11 -6
  77. moovio_sdk/models/errors/addcapabilitieserror.py +11 -6
  78. moovio_sdk/models/errors/apierror.py +30 -14
  79. moovio_sdk/models/errors/assigncountrieserror.py +12 -6
  80. moovio_sdk/models/errors/authtokenrequesterror.py +11 -6
  81. moovio_sdk/models/errors/bankaccountvalidationerror.py +11 -6
  82. moovio_sdk/models/errors/brandvalidationerror.py +11 -6
  83. moovio_sdk/models/errors/cardacquiringrefund.py +11 -6
  84. moovio_sdk/models/errors/createaccount.py +12 -6
  85. moovio_sdk/models/errors/createpaymentlinkerror.py +11 -6
  86. moovio_sdk/models/errors/createsweepconfigerror.py +11 -6
  87. moovio_sdk/models/errors/createticketerror.py +34 -0
  88. moovio_sdk/models/errors/feeplanagreementerror.py +11 -6
  89. moovio_sdk/models/errors/fileuploadvalidationerror.py +11 -6
  90. moovio_sdk/models/errors/filevalidationerror.py +11 -6
  91. moovio_sdk/models/errors/genericerror.py +12 -6
  92. moovio_sdk/models/errors/linkapplepayerror.py +11 -6
  93. moovio_sdk/models/errors/linkcarderror.py +11 -6
  94. moovio_sdk/models/errors/microdepositvalidationerror.py +11 -6
  95. moovio_sdk/models/errors/mooverror.py +26 -0
  96. moovio_sdk/models/errors/no_response_error.py +13 -0
  97. moovio_sdk/models/errors/onboardinginviteerror.py +11 -6
  98. moovio_sdk/models/errors/patchsweepconfigerror.py +11 -6
  99. moovio_sdk/models/errors/refundvalidationerror.py +11 -6
  100. moovio_sdk/models/errors/representativevalidationerror.py +11 -6
  101. moovio_sdk/models/errors/requestcarderror.py +11 -6
  102. moovio_sdk/models/errors/responsevalidationerror.py +25 -0
  103. moovio_sdk/models/errors/reversalvalidationerror.py +11 -6
  104. moovio_sdk/models/errors/revoketokenrequesterror.py +11 -6
  105. moovio_sdk/models/errors/schedulevalidationerror.py +11 -6
  106. moovio_sdk/models/errors/terminalapplicationerror.py +11 -6
  107. moovio_sdk/models/errors/transfer.py +14 -6
  108. moovio_sdk/models/errors/transferoptionsvalidationerror.py +11 -6
  109. moovio_sdk/models/errors/transfervalidationerror.py +11 -6
  110. moovio_sdk/models/errors/updateaccount.py +12 -6
  111. moovio_sdk/models/errors/updatecarderror.py +11 -6
  112. moovio_sdk/models/errors/updateissuedcarderror.py +11 -6
  113. moovio_sdk/models/errors/updatepaymentlinkerror.py +11 -6
  114. moovio_sdk/models/errors/updateticketerror.py +25 -0
  115. moovio_sdk/models/errors/updateunderwritingerror.py +11 -6
  116. moovio_sdk/models/errors/upsertunderwritingerror.py +94 -0
  117. moovio_sdk/models/operations/__init__.py +120 -0
  118. moovio_sdk/models/operations/createticket.py +78 -0
  119. moovio_sdk/models/operations/getticket.py +71 -0
  120. moovio_sdk/models/operations/listticketmessages.py +88 -0
  121. moovio_sdk/models/operations/listtickets.py +81 -0
  122. moovio_sdk/models/operations/listtransfers.py +9 -0
  123. moovio_sdk/models/operations/saveunderwriting.py +78 -0
  124. moovio_sdk/models/operations/updateticket.py +85 -0
  125. moovio_sdk/onboarding.py +66 -166
  126. moovio_sdk/payment_links.py +106 -272
  127. moovio_sdk/payment_methods.py +30 -86
  128. moovio_sdk/ping.py +10 -40
  129. moovio_sdk/receipts.py +36 -92
  130. moovio_sdk/representatives.py +102 -228
  131. moovio_sdk/scheduling.py +122 -278
  132. moovio_sdk/sdk.py +3 -0
  133. moovio_sdk/support.py +1153 -0
  134. moovio_sdk/sweeps.py +102 -274
  135. moovio_sdk/terminal_applications.py +74 -186
  136. moovio_sdk/transfers.py +278 -582
  137. moovio_sdk/underwriting.py +378 -92
  138. moovio_sdk/utils/__init__.py +3 -0
  139. moovio_sdk/utils/serializers.py +21 -3
  140. moovio_sdk/wallet_transactions.py +28 -88
  141. moovio_sdk/wallets.py +24 -84
  142. {moovio_sdk-0.11.6.dist-info → moovio_sdk-0.13.0.dist-info}/METADATA +109 -28
  143. {moovio_sdk-0.11.6.dist-info → moovio_sdk-0.13.0.dist-info}/RECORD +144 -87
  144. {moovio_sdk-0.11.6.dist-info → moovio_sdk-0.13.0.dist-info}/WHEEL +0 -0
@@ -130,40 +130,25 @@ class WalletTransactions(BaseSDK):
130
130
 
131
131
  if utils.match_response(http_res, "200", "application/json"):
132
132
  return operations.ListWalletTransactionsResponse(
133
- result=utils.unmarshal_json(
134
- http_res.text, List[components.WalletTransaction]
133
+ result=utils.unmarshal_json_response(
134
+ List[components.WalletTransaction], http_res
135
135
  ),
136
136
  headers=utils.get_response_headers(http_res.headers),
137
137
  )
138
138
  if utils.match_response(http_res, ["401", "403", "429"], "*"):
139
139
  http_res_text = utils.stream_to_text(http_res)
140
- raise errors.APIError(
141
- "API error occurred", http_res.status_code, http_res_text, http_res
142
- )
140
+ raise errors.APIError("API error occurred", http_res, http_res_text)
143
141
  if utils.match_response(http_res, ["500", "504"], "*"):
144
142
  http_res_text = utils.stream_to_text(http_res)
145
- raise errors.APIError(
146
- "API error occurred", http_res.status_code, http_res_text, http_res
147
- )
143
+ raise errors.APIError("API error occurred", http_res, http_res_text)
148
144
  if utils.match_response(http_res, "4XX", "*"):
149
145
  http_res_text = utils.stream_to_text(http_res)
150
- raise errors.APIError(
151
- "API error occurred", http_res.status_code, http_res_text, http_res
152
- )
146
+ raise errors.APIError("API error occurred", http_res, http_res_text)
153
147
  if utils.match_response(http_res, "5XX", "*"):
154
148
  http_res_text = utils.stream_to_text(http_res)
155
- raise errors.APIError(
156
- "API error occurred", http_res.status_code, http_res_text, http_res
157
- )
149
+ raise errors.APIError("API error occurred", http_res, http_res_text)
158
150
 
159
- content_type = http_res.headers.get("Content-Type")
160
- http_res_text = utils.stream_to_text(http_res)
161
- raise errors.APIError(
162
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
163
- http_res.status_code,
164
- http_res_text,
165
- http_res,
166
- )
151
+ raise errors.APIError("Unexpected response received", http_res)
167
152
 
168
153
  async def list_async(
169
154
  self,
@@ -284,40 +269,25 @@ class WalletTransactions(BaseSDK):
284
269
 
285
270
  if utils.match_response(http_res, "200", "application/json"):
286
271
  return operations.ListWalletTransactionsResponse(
287
- result=utils.unmarshal_json(
288
- http_res.text, List[components.WalletTransaction]
272
+ result=utils.unmarshal_json_response(
273
+ List[components.WalletTransaction], http_res
289
274
  ),
290
275
  headers=utils.get_response_headers(http_res.headers),
291
276
  )
292
277
  if utils.match_response(http_res, ["401", "403", "429"], "*"):
293
278
  http_res_text = await utils.stream_to_text_async(http_res)
294
- raise errors.APIError(
295
- "API error occurred", http_res.status_code, http_res_text, http_res
296
- )
279
+ raise errors.APIError("API error occurred", http_res, http_res_text)
297
280
  if utils.match_response(http_res, ["500", "504"], "*"):
298
281
  http_res_text = await utils.stream_to_text_async(http_res)
299
- raise errors.APIError(
300
- "API error occurred", http_res.status_code, http_res_text, http_res
301
- )
282
+ raise errors.APIError("API error occurred", http_res, http_res_text)
302
283
  if utils.match_response(http_res, "4XX", "*"):
303
284
  http_res_text = await utils.stream_to_text_async(http_res)
304
- raise errors.APIError(
305
- "API error occurred", http_res.status_code, http_res_text, http_res
306
- )
285
+ raise errors.APIError("API error occurred", http_res, http_res_text)
307
286
  if utils.match_response(http_res, "5XX", "*"):
308
287
  http_res_text = await utils.stream_to_text_async(http_res)
309
- raise errors.APIError(
310
- "API error occurred", http_res.status_code, http_res_text, http_res
311
- )
288
+ raise errors.APIError("API error occurred", http_res, http_res_text)
312
289
 
313
- content_type = http_res.headers.get("Content-Type")
314
- http_res_text = await utils.stream_to_text_async(http_res)
315
- raise errors.APIError(
316
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
317
- http_res.status_code,
318
- http_res_text,
319
- http_res,
320
- )
290
+ raise errors.APIError("Unexpected response received", http_res)
321
291
 
322
292
  def get(
323
293
  self,
@@ -405,40 +375,25 @@ class WalletTransactions(BaseSDK):
405
375
 
406
376
  if utils.match_response(http_res, "200", "application/json"):
407
377
  return operations.GetWalletTransactionResponse(
408
- result=utils.unmarshal_json(
409
- http_res.text, components.WalletTransaction
378
+ result=utils.unmarshal_json_response(
379
+ components.WalletTransaction, http_res
410
380
  ),
411
381
  headers=utils.get_response_headers(http_res.headers),
412
382
  )
413
383
  if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
414
384
  http_res_text = utils.stream_to_text(http_res)
415
- raise errors.APIError(
416
- "API error occurred", http_res.status_code, http_res_text, http_res
417
- )
385
+ raise errors.APIError("API error occurred", http_res, http_res_text)
418
386
  if utils.match_response(http_res, ["500", "504"], "*"):
419
387
  http_res_text = utils.stream_to_text(http_res)
420
- raise errors.APIError(
421
- "API error occurred", http_res.status_code, http_res_text, http_res
422
- )
388
+ raise errors.APIError("API error occurred", http_res, http_res_text)
423
389
  if utils.match_response(http_res, "4XX", "*"):
424
390
  http_res_text = utils.stream_to_text(http_res)
425
- raise errors.APIError(
426
- "API error occurred", http_res.status_code, http_res_text, http_res
427
- )
391
+ raise errors.APIError("API error occurred", http_res, http_res_text)
428
392
  if utils.match_response(http_res, "5XX", "*"):
429
393
  http_res_text = utils.stream_to_text(http_res)
430
- raise errors.APIError(
431
- "API error occurred", http_res.status_code, http_res_text, http_res
432
- )
394
+ raise errors.APIError("API error occurred", http_res, http_res_text)
433
395
 
434
- content_type = http_res.headers.get("Content-Type")
435
- http_res_text = utils.stream_to_text(http_res)
436
- raise errors.APIError(
437
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
438
- http_res.status_code,
439
- http_res_text,
440
- http_res,
441
- )
396
+ raise errors.APIError("Unexpected response received", http_res)
442
397
 
443
398
  async def get_async(
444
399
  self,
@@ -526,37 +481,22 @@ class WalletTransactions(BaseSDK):
526
481
 
527
482
  if utils.match_response(http_res, "200", "application/json"):
528
483
  return operations.GetWalletTransactionResponse(
529
- result=utils.unmarshal_json(
530
- http_res.text, components.WalletTransaction
484
+ result=utils.unmarshal_json_response(
485
+ components.WalletTransaction, http_res
531
486
  ),
532
487
  headers=utils.get_response_headers(http_res.headers),
533
488
  )
534
489
  if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
535
490
  http_res_text = await utils.stream_to_text_async(http_res)
536
- raise errors.APIError(
537
- "API error occurred", http_res.status_code, http_res_text, http_res
538
- )
491
+ raise errors.APIError("API error occurred", http_res, http_res_text)
539
492
  if utils.match_response(http_res, ["500", "504"], "*"):
540
493
  http_res_text = await utils.stream_to_text_async(http_res)
541
- raise errors.APIError(
542
- "API error occurred", http_res.status_code, http_res_text, http_res
543
- )
494
+ raise errors.APIError("API error occurred", http_res, http_res_text)
544
495
  if utils.match_response(http_res, "4XX", "*"):
545
496
  http_res_text = await utils.stream_to_text_async(http_res)
546
- raise errors.APIError(
547
- "API error occurred", http_res.status_code, http_res_text, http_res
548
- )
497
+ raise errors.APIError("API error occurred", http_res, http_res_text)
549
498
  if utils.match_response(http_res, "5XX", "*"):
550
499
  http_res_text = await utils.stream_to_text_async(http_res)
551
- raise errors.APIError(
552
- "API error occurred", http_res.status_code, http_res_text, http_res
553
- )
500
+ raise errors.APIError("API error occurred", http_res, http_res_text)
554
501
 
555
- content_type = http_res.headers.get("Content-Type")
556
- http_res_text = await utils.stream_to_text_async(http_res)
557
- raise errors.APIError(
558
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
559
- http_res.status_code,
560
- http_res_text,
561
- http_res,
562
- )
502
+ raise errors.APIError("Unexpected response received", http_res)
moovio_sdk/wallets.py CHANGED
@@ -90,38 +90,23 @@ class Wallets(BaseSDK):
90
90
 
91
91
  if utils.match_response(http_res, "200", "application/json"):
92
92
  return operations.ListWalletsResponse(
93
- result=utils.unmarshal_json(http_res.text, List[components.Wallet]),
93
+ result=utils.unmarshal_json_response(List[components.Wallet], http_res),
94
94
  headers=utils.get_response_headers(http_res.headers),
95
95
  )
96
96
  if utils.match_response(http_res, ["401", "403", "429"], "*"):
97
97
  http_res_text = utils.stream_to_text(http_res)
98
- raise errors.APIError(
99
- "API error occurred", http_res.status_code, http_res_text, http_res
100
- )
98
+ raise errors.APIError("API error occurred", http_res, http_res_text)
101
99
  if utils.match_response(http_res, ["500", "504"], "*"):
102
100
  http_res_text = utils.stream_to_text(http_res)
103
- raise errors.APIError(
104
- "API error occurred", http_res.status_code, http_res_text, http_res
105
- )
101
+ raise errors.APIError("API error occurred", http_res, http_res_text)
106
102
  if utils.match_response(http_res, "4XX", "*"):
107
103
  http_res_text = utils.stream_to_text(http_res)
108
- raise errors.APIError(
109
- "API error occurred", http_res.status_code, http_res_text, http_res
110
- )
104
+ raise errors.APIError("API error occurred", http_res, http_res_text)
111
105
  if utils.match_response(http_res, "5XX", "*"):
112
106
  http_res_text = utils.stream_to_text(http_res)
113
- raise errors.APIError(
114
- "API error occurred", http_res.status_code, http_res_text, http_res
115
- )
107
+ raise errors.APIError("API error occurred", http_res, http_res_text)
116
108
 
117
- content_type = http_res.headers.get("Content-Type")
118
- http_res_text = utils.stream_to_text(http_res)
119
- raise errors.APIError(
120
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
121
- http_res.status_code,
122
- http_res_text,
123
- http_res,
124
- )
109
+ raise errors.APIError("Unexpected response received", http_res)
125
110
 
126
111
  async def list_async(
127
112
  self,
@@ -203,38 +188,23 @@ class Wallets(BaseSDK):
203
188
 
204
189
  if utils.match_response(http_res, "200", "application/json"):
205
190
  return operations.ListWalletsResponse(
206
- result=utils.unmarshal_json(http_res.text, List[components.Wallet]),
191
+ result=utils.unmarshal_json_response(List[components.Wallet], http_res),
207
192
  headers=utils.get_response_headers(http_res.headers),
208
193
  )
209
194
  if utils.match_response(http_res, ["401", "403", "429"], "*"):
210
195
  http_res_text = await utils.stream_to_text_async(http_res)
211
- raise errors.APIError(
212
- "API error occurred", http_res.status_code, http_res_text, http_res
213
- )
196
+ raise errors.APIError("API error occurred", http_res, http_res_text)
214
197
  if utils.match_response(http_res, ["500", "504"], "*"):
215
198
  http_res_text = await utils.stream_to_text_async(http_res)
216
- raise errors.APIError(
217
- "API error occurred", http_res.status_code, http_res_text, http_res
218
- )
199
+ raise errors.APIError("API error occurred", http_res, http_res_text)
219
200
  if utils.match_response(http_res, "4XX", "*"):
220
201
  http_res_text = await utils.stream_to_text_async(http_res)
221
- raise errors.APIError(
222
- "API error occurred", http_res.status_code, http_res_text, http_res
223
- )
202
+ raise errors.APIError("API error occurred", http_res, http_res_text)
224
203
  if utils.match_response(http_res, "5XX", "*"):
225
204
  http_res_text = await utils.stream_to_text_async(http_res)
226
- raise errors.APIError(
227
- "API error occurred", http_res.status_code, http_res_text, http_res
228
- )
205
+ raise errors.APIError("API error occurred", http_res, http_res_text)
229
206
 
230
- content_type = http_res.headers.get("Content-Type")
231
- http_res_text = await utils.stream_to_text_async(http_res)
232
- raise errors.APIError(
233
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
234
- http_res.status_code,
235
- http_res_text,
236
- http_res,
237
- )
207
+ raise errors.APIError("Unexpected response received", http_res)
238
208
 
239
209
  def get(
240
210
  self,
@@ -319,38 +289,23 @@ class Wallets(BaseSDK):
319
289
 
320
290
  if utils.match_response(http_res, "200", "application/json"):
321
291
  return operations.GetWalletResponse(
322
- result=utils.unmarshal_json(http_res.text, components.Wallet),
292
+ result=utils.unmarshal_json_response(components.Wallet, http_res),
323
293
  headers=utils.get_response_headers(http_res.headers),
324
294
  )
325
295
  if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
326
296
  http_res_text = utils.stream_to_text(http_res)
327
- raise errors.APIError(
328
- "API error occurred", http_res.status_code, http_res_text, http_res
329
- )
297
+ raise errors.APIError("API error occurred", http_res, http_res_text)
330
298
  if utils.match_response(http_res, ["500", "504"], "*"):
331
299
  http_res_text = utils.stream_to_text(http_res)
332
- raise errors.APIError(
333
- "API error occurred", http_res.status_code, http_res_text, http_res
334
- )
300
+ raise errors.APIError("API error occurred", http_res, http_res_text)
335
301
  if utils.match_response(http_res, "4XX", "*"):
336
302
  http_res_text = utils.stream_to_text(http_res)
337
- raise errors.APIError(
338
- "API error occurred", http_res.status_code, http_res_text, http_res
339
- )
303
+ raise errors.APIError("API error occurred", http_res, http_res_text)
340
304
  if utils.match_response(http_res, "5XX", "*"):
341
305
  http_res_text = utils.stream_to_text(http_res)
342
- raise errors.APIError(
343
- "API error occurred", http_res.status_code, http_res_text, http_res
344
- )
306
+ raise errors.APIError("API error occurred", http_res, http_res_text)
345
307
 
346
- content_type = http_res.headers.get("Content-Type")
347
- http_res_text = utils.stream_to_text(http_res)
348
- raise errors.APIError(
349
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
350
- http_res.status_code,
351
- http_res_text,
352
- http_res,
353
- )
308
+ raise errors.APIError("Unexpected response received", http_res)
354
309
 
355
310
  async def get_async(
356
311
  self,
@@ -435,35 +390,20 @@ class Wallets(BaseSDK):
435
390
 
436
391
  if utils.match_response(http_res, "200", "application/json"):
437
392
  return operations.GetWalletResponse(
438
- result=utils.unmarshal_json(http_res.text, components.Wallet),
393
+ result=utils.unmarshal_json_response(components.Wallet, http_res),
439
394
  headers=utils.get_response_headers(http_res.headers),
440
395
  )
441
396
  if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
442
397
  http_res_text = await utils.stream_to_text_async(http_res)
443
- raise errors.APIError(
444
- "API error occurred", http_res.status_code, http_res_text, http_res
445
- )
398
+ raise errors.APIError("API error occurred", http_res, http_res_text)
446
399
  if utils.match_response(http_res, ["500", "504"], "*"):
447
400
  http_res_text = await utils.stream_to_text_async(http_res)
448
- raise errors.APIError(
449
- "API error occurred", http_res.status_code, http_res_text, http_res
450
- )
401
+ raise errors.APIError("API error occurred", http_res, http_res_text)
451
402
  if utils.match_response(http_res, "4XX", "*"):
452
403
  http_res_text = await utils.stream_to_text_async(http_res)
453
- raise errors.APIError(
454
- "API error occurred", http_res.status_code, http_res_text, http_res
455
- )
404
+ raise errors.APIError("API error occurred", http_res, http_res_text)
456
405
  if utils.match_response(http_res, "5XX", "*"):
457
406
  http_res_text = await utils.stream_to_text_async(http_res)
458
- raise errors.APIError(
459
- "API error occurred", http_res.status_code, http_res_text, http_res
460
- )
407
+ raise errors.APIError("API error occurred", http_res, http_res_text)
461
408
 
462
- content_type = http_res.headers.get("Content-Type")
463
- http_res_text = await utils.stream_to_text_async(http_res)
464
- raise errors.APIError(
465
- f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
466
- http_res.status_code,
467
- http_res_text,
468
- http_res,
469
- )
409
+ raise errors.APIError("Unexpected response received", http_res)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: moovio_sdk
3
- Version: 0.11.6
3
+ Version: 0.13.0
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -1007,6 +1007,29 @@ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1007
1007
  To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1008
1008
  you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
1009
1009
 
1010
+ ### [support](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md)
1011
+
1012
+ * [create_ticket](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md#create_ticket) - Create a support ticket for a Moov account.
1013
+
1014
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1015
+ you'll need to specify the `/accounts/{accountID}/support.write` scope.
1016
+ * [list_tickets](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md#list_tickets) - List all the support tickets created under a Moov account.
1017
+
1018
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1019
+ you'll need to specify the `/accounts/{accountID}/support.read` scope.
1020
+ * [get_ticket](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md#get_ticket) - Retrieve a support ticket by ID.
1021
+
1022
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1023
+ you'll need to specify the `/accounts/{accountID}/support.read` scope.
1024
+ * [update_ticket](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md#update_ticket) - Updates a support ticket.
1025
+
1026
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1027
+ you'll need to specify the `/accounts/{accountID}/support.write` scope.
1028
+ * [list_ticket_messages](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/support/README.md#list_ticket_messages) - List all the messages for a support ticket.
1029
+
1030
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1031
+ you'll need to specify the `/accounts/{accountID}/support.read` scope.
1032
+
1010
1033
  ### [sweeps](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/sweeps/README.md)
1011
1034
 
1012
1035
  * [create_config](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/sweeps/README.md#create_config) - Create a sweep config for a wallet.
@@ -1139,6 +1162,12 @@ Read our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/
1139
1162
 
1140
1163
  To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1141
1164
  you'll need to specify the `/accounts/{accountID}/profile.read` scope.
1165
+ * [save](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/underwriting/README.md#save) - Create or update the account's underwriting.
1166
+
1167
+ Read our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more.
1168
+
1169
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1170
+ you'll need to specify the `/accounts/{accountID}/profile.write` scope.
1142
1171
  * [upsert](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/underwriting/README.md#upsert) - Create or update the account's underwriting.
1143
1172
 
1144
1173
  Read our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more.
@@ -1332,27 +1361,18 @@ with Moov(
1332
1361
  <!-- Start Error Handling [errors] -->
1333
1362
  ## Error Handling
1334
1363
 
1335
- Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an exception.
1336
-
1337
- By default, an API error will raise a errors.APIError exception, which has the following properties:
1364
+ [`MoovError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/mooverror.py) is the base class for all HTTP error responses. It has the following properties:
1338
1365
 
1339
- | Property | Type | Description |
1340
- |-----------------|------------------|-----------------------|
1341
- | `.status_code` | *int* | The HTTP status code |
1342
- | `.message` | *str* | The error message |
1343
- | `.raw_response` | *httpx.Response* | The raw HTTP response |
1344
- | `.body` | *str* | The response content |
1345
-
1346
- When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `create_async` method may raise the following exceptions:
1347
-
1348
- | Error Type | Status Code | Content Type |
1349
- | -------------------------------- | ----------- | ---------------- |
1350
- | errors.GenericError | 400, 409 | application/json |
1351
- | errors.CreateAccountResponseBody | 422 | application/json |
1352
- | errors.APIError | 4XX, 5XX | \*/\* |
1366
+ | Property | Type | Description |
1367
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
1368
+ | `err.message` | `str` | Error message |
1369
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
1370
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
1371
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
1372
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
1373
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/moovfinancial/moov-python/blob/master/#error-classes). |
1353
1374
 
1354
1375
  ### Example
1355
-
1356
1376
  ```python
1357
1377
  from moovio_sdk import Moov
1358
1378
  from moovio_sdk.models import components, errors
@@ -1406,16 +1426,77 @@ with Moov(
1406
1426
  # Handle response
1407
1427
  print(res)
1408
1428
 
1409
- except errors.GenericError as e:
1410
- # handle e.data: errors.GenericErrorData
1411
- raise(e)
1412
- except errors.CreateAccountResponseBody as e:
1413
- # handle e.data: errors.CreateAccountResponseBodyData
1414
- raise(e)
1415
- except errors.APIError as e:
1416
- # handle exception
1417
- raise(e)
1429
+
1430
+ except errors.MoovError as e:
1431
+ # The base class for HTTP error responses
1432
+ print(e.message)
1433
+ print(e.status_code)
1434
+ print(e.body)
1435
+ print(e.headers)
1436
+ print(e.raw_response)
1437
+
1438
+ # Depending on the method different errors may be thrown
1439
+ if isinstance(e, errors.GenericError):
1440
+ print(e.data.error) # str
1418
1441
  ```
1442
+
1443
+ ### Error Classes
1444
+ **Primary error:**
1445
+ * [`MoovError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/mooverror.py): The base class for HTTP error responses.
1446
+
1447
+ <details><summary>Less common errors (42)</summary>
1448
+
1449
+ <br />
1450
+
1451
+ **Network errors:**
1452
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
1453
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
1454
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
1455
+
1456
+
1457
+ **Inherit from [`MoovError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/mooverror.py)**:
1458
+ * [`GenericError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/genericerror.py): Applicable to 62 of 143 methods.*
1459
+ * [`BrandValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/brandvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 3 of 143 methods.*
1460
+ * [`ScheduleValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/schedulevalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 2 of 143 methods.*
1461
+ * [`TransferOptionsValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/transferoptionsvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 2 of 143 methods.*
1462
+ * [`Transfer`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/transfer.py): Details of a Transfer. Status code `409`. Applicable to 1 of 143 methods.*
1463
+ * [`CardAcquiringRefund`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/cardacquiringrefund.py): Details of a card refund. Status code `409`. Applicable to 1 of 143 methods.*
1464
+ * [`CreateAccountResponseBody`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/createaccountresponsebody.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1465
+ * [`UpdateAccountResponseBody`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updateaccountresponsebody.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1466
+ * [`AssignCountriesError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/assigncountrieserror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1467
+ * [`LinkApplePayError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/linkapplepayerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1468
+ * [`BankAccountValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/bankaccountvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1469
+ * [`MicroDepositValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/microdepositvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1470
+ * [`AddCapabilitiesError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/addcapabilitieserror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1471
+ * [`LinkCardError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/linkcarderror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1472
+ * [`UpdateCardError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updatecarderror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1473
+ * [`FileUploadValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/fileuploadvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1474
+ * [`FeePlanAgreementError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/feeplanagreementerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1475
+ * [`FileValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/filevalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1476
+ * [`CreatePaymentLinkError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/createpaymentlinkerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1477
+ * [`UpdatePaymentLinkError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updatepaymentlinkerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1478
+ * [`RepresentativeValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/representativevalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1479
+ * [`CreateSweepConfigError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/createsweepconfigerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1480
+ * [`PatchSweepConfigError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/patchsweepconfigerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1481
+ * [`AccountTerminalApplicationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/accountterminalapplicationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1482
+ * [`CreateTicketError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/createticketerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1483
+ * [`UpdateTicketError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updateticketerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1484
+ * [`TransferValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/transfervalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1485
+ * [`RefundValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/refundvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1486
+ * [`ReversalValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/reversalvalidationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1487
+ * [`UpsertUnderwritingError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/upsertunderwritingerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1488
+ * [`UpdateUnderwritingError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updateunderwritingerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1489
+ * [`RequestCardError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/requestcarderror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1490
+ * [`UpdateIssuedCardError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/updateissuedcarderror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1491
+ * [`RevokeTokenRequestError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/revoketokenrequesterror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1492
+ * [`AuthTokenRequestError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/authtokenrequesterror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1493
+ * [`OnboardingInviteError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/onboardinginviteerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1494
+ * [`TerminalApplicationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/terminalapplicationerror.py): The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields. Status code `422`. Applicable to 1 of 143 methods.*
1495
+ * [`ResponseValidationError`](https://github.com/moovfinancial/moov-python/blob/master/./src/moovio_sdk/models/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
1496
+
1497
+ </details>
1498
+
1499
+ \* Check [the method documentation](https://github.com/moovfinancial/moov-python/blob/master/#available-resources-and-operations) to see if the error is applicable.
1419
1500
  <!-- End Error Handling [errors] -->
1420
1501
 
1421
1502
  <!-- Start Server Selection [server] -->