moovio_sdk 0.11.5__py3-none-any.whl → 0.12.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 (63) hide show
  1. moovio_sdk/_version.py +3 -3
  2. moovio_sdk/capabilities.py +4 -4
  3. moovio_sdk/models/components/__init__.py +205 -0
  4. moovio_sdk/models/components/businesspresence.py +13 -0
  5. moovio_sdk/models/components/capability.py +2 -2
  6. moovio_sdk/models/components/capabilityid.py +11 -1
  7. moovio_sdk/models/components/cardacceptancemethods.py +37 -0
  8. moovio_sdk/models/components/cardacceptancemethodserror.py +27 -0
  9. moovio_sdk/models/components/collectfunds.py +25 -0
  10. moovio_sdk/models/components/collectfundsach.py +18 -0
  11. moovio_sdk/models/components/collectfundsacherror.py +21 -0
  12. moovio_sdk/models/components/collectfundscardpayments.py +41 -0
  13. moovio_sdk/models/components/collectfundscardpaymentserror.py +43 -0
  14. moovio_sdk/models/components/collectfundserror.py +25 -0
  15. moovio_sdk/models/components/createdtransfer.py +5 -0
  16. moovio_sdk/models/components/createtransfer.py +5 -0
  17. moovio_sdk/models/components/estimatedactivity.py +30 -0
  18. moovio_sdk/models/components/estimatedactivityerror.py +27 -0
  19. moovio_sdk/models/components/fulfillment.py +19 -0
  20. moovio_sdk/models/components/fulfillmenterror.py +17 -0
  21. moovio_sdk/models/components/fulfillmentmethod.py +16 -0
  22. moovio_sdk/models/components/fulfillmenttimeframe.py +15 -0
  23. moovio_sdk/models/components/geographicreach.py +10 -0
  24. moovio_sdk/models/components/moneytransfer.py +30 -0
  25. moovio_sdk/models/components/moneytransfererror.py +30 -0
  26. moovio_sdk/models/components/moneytransferpullfromcard.py +18 -0
  27. moovio_sdk/models/components/moneytransferpullfromcarderror.py +21 -0
  28. moovio_sdk/models/components/moneytransferpushtocard.py +18 -0
  29. moovio_sdk/models/components/moneytransferpushtocarderror.py +21 -0
  30. moovio_sdk/models/components/monthlyvolumerange.py +17 -0
  31. moovio_sdk/models/components/pendinglitigation.py +17 -0
  32. moovio_sdk/models/components/refundpolicy.py +16 -0
  33. moovio_sdk/models/components/sendfunds.py +26 -0
  34. moovio_sdk/models/components/sendfundsach.py +18 -0
  35. moovio_sdk/models/components/sendfundsacherror.py +21 -0
  36. moovio_sdk/models/components/sendfundserror.py +29 -0
  37. moovio_sdk/models/components/sendfundspushtocard.py +18 -0
  38. moovio_sdk/models/components/sendfundspushtocarderror.py +21 -0
  39. moovio_sdk/models/components/sendfundsrtp.py +18 -0
  40. moovio_sdk/models/components/sendfundsrtperror.py +21 -0
  41. moovio_sdk/models/components/transfer.py +5 -0
  42. moovio_sdk/models/components/underwriting.py +67 -20
  43. moovio_sdk/models/components/upsertunderwriting.py +56 -0
  44. moovio_sdk/models/components/volumesharebycustomertype.py +20 -0
  45. moovio_sdk/models/components/volumesharebycustomertypeerror.py +20 -0
  46. moovio_sdk/models/components/webhookdata.py +10 -10
  47. moovio_sdk/models/components/webhookdatacapabilityrequested.py +2 -2
  48. moovio_sdk/models/components/webhookdatacapabilityupdated.py +2 -2
  49. moovio_sdk/models/components/webhookdatatransfercreated.py +5 -1
  50. moovio_sdk/models/components/webhookdatatransferupdated.py +5 -1
  51. moovio_sdk/models/errors/__init__.py +8 -0
  52. moovio_sdk/models/errors/transfer.py +3 -0
  53. moovio_sdk/models/errors/upsertunderwritingerror.py +89 -0
  54. moovio_sdk/models/operations/__init__.py +20 -0
  55. moovio_sdk/models/operations/disablecapability.py +2 -2
  56. moovio_sdk/models/operations/getcapability.py +2 -2
  57. moovio_sdk/models/operations/listtransfers.py +9 -0
  58. moovio_sdk/models/operations/saveunderwriting.py +78 -0
  59. moovio_sdk/transfers.py +12 -0
  60. moovio_sdk/underwriting.py +368 -0
  61. {moovio_sdk-0.11.5.dist-info → moovio_sdk-0.12.0.dist-info}/METADATA +7 -1
  62. {moovio_sdk-0.11.5.dist-info → moovio_sdk-0.12.0.dist-info}/RECORD +63 -25
  63. {moovio_sdk-0.11.5.dist-info → moovio_sdk-0.12.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,21 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .estimatedactivityerror import (
5
+ EstimatedActivityError,
6
+ EstimatedActivityErrorTypedDict,
7
+ )
8
+ from moovio_sdk.types import BaseModel
9
+ import pydantic
10
+ from typing import Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class SendFundsPushToCardErrorTypedDict(TypedDict):
15
+ estimated_activity: NotRequired[EstimatedActivityErrorTypedDict]
16
+
17
+
18
+ class SendFundsPushToCardError(BaseModel):
19
+ estimated_activity: Annotated[
20
+ Optional[EstimatedActivityError], pydantic.Field(alias="estimatedActivity")
21
+ ] = None
@@ -0,0 +1,18 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .estimatedactivity import EstimatedActivity, EstimatedActivityTypedDict
5
+ from moovio_sdk.types import BaseModel
6
+ import pydantic
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class SendFundsRtpTypedDict(TypedDict):
12
+ estimated_activity: NotRequired[EstimatedActivityTypedDict]
13
+
14
+
15
+ class SendFundsRtp(BaseModel):
16
+ estimated_activity: Annotated[
17
+ Optional[EstimatedActivity], pydantic.Field(alias="estimatedActivity")
18
+ ] = None
@@ -0,0 +1,21 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .estimatedactivityerror import (
5
+ EstimatedActivityError,
6
+ EstimatedActivityErrorTypedDict,
7
+ )
8
+ from moovio_sdk.types import BaseModel
9
+ import pydantic
10
+ from typing import Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class SendFundsRtpErrorTypedDict(TypedDict):
15
+ estimated_activity: NotRequired[EstimatedActivityErrorTypedDict]
16
+
17
+
18
+ class SendFundsRtpError(BaseModel):
19
+ estimated_activity: Annotated[
20
+ Optional[EstimatedActivityError], pydantic.Field(alias="estimatedActivity")
21
+ ] = None
@@ -58,6 +58,8 @@ class TransferTypedDict(TypedDict):
58
58
  payment_link_code: NotRequired[str]
59
59
  sales_tax_amount: NotRequired[AmountTypedDict]
60
60
  r"""Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged."""
61
+ foreign_id: NotRequired[str]
62
+ r"""Optional alias from a foreign/external system which can be used to reference this resource."""
61
63
 
62
64
 
63
65
  class Transfer(BaseModel):
@@ -144,3 +146,6 @@ class Transfer(BaseModel):
144
146
  Optional[Amount], pydantic.Field(alias="salesTaxAmount")
145
147
  ] = None
146
148
  r"""Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged."""
149
+
150
+ foreign_id: Annotated[Optional[str], pydantic.Field(alias="foreignID")] = None
151
+ r"""Optional alias from a foreign/external system which can be used to reference this resource."""
@@ -1,56 +1,103 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .businesspresence import BusinessPresence
4
5
  from .cardvolumedistribution import (
5
6
  CardVolumeDistribution,
6
7
  CardVolumeDistributionTypedDict,
7
8
  )
9
+ from .collectfunds import CollectFunds, CollectFundsTypedDict
8
10
  from .fulfillmentdetails import FulfillmentDetails, FulfillmentDetailsTypedDict
11
+ from .geographicreach import GeographicReach
12
+ from .moneytransfer import MoneyTransfer, MoneyTransferTypedDict
13
+ from .pendinglitigation import PendingLitigation
14
+ from .sendfunds import SendFunds, SendFundsTypedDict
9
15
  from .underwritingstatus import UnderwritingStatus
10
16
  from .volumebycustomertype import VolumeByCustomerType, VolumeByCustomerTypeTypedDict
17
+ from .volumesharebycustomertype import (
18
+ VolumeShareByCustomerType,
19
+ VolumeShareByCustomerTypeTypedDict,
20
+ )
11
21
  from moovio_sdk.types import BaseModel
12
22
  import pydantic
13
- from typing_extensions import Annotated, TypedDict
23
+ from typing import Optional
24
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
25
 
15
26
 
16
27
  class UnderwritingTypedDict(TypedDict):
17
28
  r"""Describes underwriting values (in USD) used for card payment acceptance."""
18
29
 
19
- average_transaction_size: int
20
- max_transaction_size: int
21
- average_monthly_transaction_volume: int
22
- status: UnderwritingStatus
23
- volume_by_customer_type: VolumeByCustomerTypeTypedDict
24
- card_volume_distribution: CardVolumeDistributionTypedDict
25
- fulfillment: FulfillmentDetailsTypedDict
30
+ average_transaction_size: NotRequired[int]
31
+ max_transaction_size: NotRequired[int]
32
+ average_monthly_transaction_volume: NotRequired[int]
33
+ status: NotRequired[UnderwritingStatus]
34
+ volume_by_customer_type: NotRequired[VolumeByCustomerTypeTypedDict]
35
+ card_volume_distribution: NotRequired[CardVolumeDistributionTypedDict]
36
+ fulfillment: NotRequired[FulfillmentDetailsTypedDict]
37
+ geographic_reach: NotRequired[GeographicReach]
38
+ business_presence: NotRequired[BusinessPresence]
39
+ pending_litigation: NotRequired[PendingLitigation]
40
+ volume_share_by_customer_type: NotRequired[VolumeShareByCustomerTypeTypedDict]
41
+ collect_funds: NotRequired[CollectFundsTypedDict]
42
+ money_transfer: NotRequired[MoneyTransferTypedDict]
43
+ send_funds: NotRequired[SendFundsTypedDict]
26
44
 
27
45
 
28
46
  class Underwriting(BaseModel):
29
47
  r"""Describes underwriting values (in USD) used for card payment acceptance."""
30
48
 
31
49
  average_transaction_size: Annotated[
32
- int, pydantic.Field(alias="averageTransactionSize")
33
- ]
50
+ Optional[int], pydantic.Field(alias="averageTransactionSize")
51
+ ] = None
34
52
 
35
- max_transaction_size: Annotated[int, pydantic.Field(alias="maxTransactionSize")]
53
+ max_transaction_size: Annotated[
54
+ Optional[int], pydantic.Field(alias="maxTransactionSize")
55
+ ] = None
36
56
 
37
57
  average_monthly_transaction_volume: Annotated[
38
- int, pydantic.Field(alias="averageMonthlyTransactionVolume")
39
- ]
58
+ Optional[int], pydantic.Field(alias="averageMonthlyTransactionVolume")
59
+ ] = None
40
60
 
41
61
  status: Annotated[
42
- UnderwritingStatus,
62
+ Optional[UnderwritingStatus],
43
63
  pydantic.Field(
44
64
  deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible."
45
65
  ),
46
- ]
66
+ ] = None
47
67
 
48
68
  volume_by_customer_type: Annotated[
49
- VolumeByCustomerType, pydantic.Field(alias="volumeByCustomerType")
50
- ]
69
+ Optional[VolumeByCustomerType], pydantic.Field(alias="volumeByCustomerType")
70
+ ] = None
51
71
 
52
72
  card_volume_distribution: Annotated[
53
- CardVolumeDistribution, pydantic.Field(alias="cardVolumeDistribution")
54
- ]
73
+ Optional[CardVolumeDistribution], pydantic.Field(alias="cardVolumeDistribution")
74
+ ] = None
75
+
76
+ fulfillment: Optional[FulfillmentDetails] = None
77
+
78
+ geographic_reach: Annotated[
79
+ Optional[GeographicReach], pydantic.Field(alias="geographicReach")
80
+ ] = None
81
+
82
+ business_presence: Annotated[
83
+ Optional[BusinessPresence], pydantic.Field(alias="businessPresence")
84
+ ] = None
85
+
86
+ pending_litigation: Annotated[
87
+ Optional[PendingLitigation], pydantic.Field(alias="pendingLitigation")
88
+ ] = None
89
+
90
+ volume_share_by_customer_type: Annotated[
91
+ Optional[VolumeShareByCustomerType],
92
+ pydantic.Field(alias="volumeShareByCustomerType"),
93
+ ] = None
94
+
95
+ collect_funds: Annotated[
96
+ Optional[CollectFunds], pydantic.Field(alias="collectFunds")
97
+ ] = None
98
+
99
+ money_transfer: Annotated[
100
+ Optional[MoneyTransfer], pydantic.Field(alias="moneyTransfer")
101
+ ] = None
55
102
 
56
- fulfillment: FulfillmentDetails
103
+ send_funds: Annotated[Optional[SendFunds], pydantic.Field(alias="sendFunds")] = None
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .businesspresence import BusinessPresence
5
+ from .collectfunds import CollectFunds, CollectFundsTypedDict
6
+ from .geographicreach import GeographicReach
7
+ from .moneytransfer import MoneyTransfer, MoneyTransferTypedDict
8
+ from .pendinglitigation import PendingLitigation
9
+ from .sendfunds import SendFunds, SendFundsTypedDict
10
+ from .volumesharebycustomertype import (
11
+ VolumeShareByCustomerType,
12
+ VolumeShareByCustomerTypeTypedDict,
13
+ )
14
+ from moovio_sdk.types import BaseModel
15
+ import pydantic
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class UpsertUnderwritingTypedDict(TypedDict):
21
+ geographic_reach: NotRequired[GeographicReach]
22
+ business_presence: NotRequired[BusinessPresence]
23
+ pending_litigation: NotRequired[PendingLitigation]
24
+ volume_share_by_customer_type: NotRequired[VolumeShareByCustomerTypeTypedDict]
25
+ collect_funds: NotRequired[CollectFundsTypedDict]
26
+ money_transfer: NotRequired[MoneyTransferTypedDict]
27
+ send_funds: NotRequired[SendFundsTypedDict]
28
+
29
+
30
+ class UpsertUnderwriting(BaseModel):
31
+ geographic_reach: Annotated[
32
+ Optional[GeographicReach], pydantic.Field(alias="geographicReach")
33
+ ] = None
34
+
35
+ business_presence: Annotated[
36
+ Optional[BusinessPresence], pydantic.Field(alias="businessPresence")
37
+ ] = None
38
+
39
+ pending_litigation: Annotated[
40
+ Optional[PendingLitigation], pydantic.Field(alias="pendingLitigation")
41
+ ] = None
42
+
43
+ volume_share_by_customer_type: Annotated[
44
+ Optional[VolumeShareByCustomerType],
45
+ pydantic.Field(alias="volumeShareByCustomerType"),
46
+ ] = None
47
+
48
+ collect_funds: Annotated[
49
+ Optional[CollectFunds], pydantic.Field(alias="collectFunds")
50
+ ] = None
51
+
52
+ money_transfer: Annotated[
53
+ Optional[MoneyTransfer], pydantic.Field(alias="moneyTransfer")
54
+ ] = None
55
+
56
+ send_funds: Annotated[Optional[SendFunds], pydantic.Field(alias="sendFunds")] = None
@@ -0,0 +1,20 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from moovio_sdk.types import BaseModel
5
+ from typing import Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class VolumeShareByCustomerTypeTypedDict(TypedDict):
10
+ business: NotRequired[int]
11
+ consumer: NotRequired[int]
12
+ p2p: NotRequired[int]
13
+
14
+
15
+ class VolumeShareByCustomerType(BaseModel):
16
+ business: Optional[int] = None
17
+
18
+ consumer: Optional[int] = None
19
+
20
+ p2p: Optional[int] = None
@@ -0,0 +1,20 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from moovio_sdk.types import BaseModel
5
+ from typing import Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class VolumeShareByCustomerTypeErrorTypedDict(TypedDict):
10
+ business: NotRequired[str]
11
+ consumer: NotRequired[str]
12
+ p2p: NotRequired[str]
13
+
14
+
15
+ class VolumeShareByCustomerTypeError(BaseModel):
16
+ business: Optional[str] = None
17
+
18
+ consumer: Optional[str] = None
19
+
20
+ p2p: Optional[str] = None
@@ -138,21 +138,21 @@ WebhookDataTypedDict = TypeAliasType(
138
138
  WebhookDataRepresentativeUpdatedTypedDict,
139
139
  WebhookDataCancellationCreatedTypedDict,
140
140
  WebhookDataCapabilityRequestedTypedDict,
141
- WebhookDataTransferCreatedTypedDict,
141
+ WebhookDataCancellationUpdatedTypedDict,
142
142
  WebhookDataPaymentMethodEnabledTypedDict,
143
143
  WebhookDataPaymentMethodDisabledTypedDict,
144
144
  WebhookDataRefundCreatedTypedDict,
145
- WebhookDataCancellationUpdatedTypedDict,
146
145
  WebhookDataCardAutoUpdatedTypedDict,
147
146
  WebhookDataCapabilityUpdatedTypedDict,
148
- WebhookDataSweepUpdatedTypedDict,
149
147
  WebhookDataRefundUpdatedTypedDict,
148
+ WebhookDataSweepUpdatedTypedDict,
149
+ WebhookDataTransferCreatedTypedDict,
150
150
  WebhookDataBankAccountUpdatedTypedDict,
151
- WebhookDataTransferUpdatedTypedDict,
152
151
  WebhookDataWalletTransactionUpdatedTypedDict,
153
- WebhookDataDisputeUpdatedTypedDict,
154
152
  WebhookDataDisputeCreatedTypedDict,
153
+ WebhookDataDisputeUpdatedTypedDict,
155
154
  WebhookDataNetworkIDUpdatedTypedDict,
155
+ WebhookDataTransferUpdatedTypedDict,
156
156
  ],
157
157
  )
158
158
  r"""The data for the webhook event. The contents are based on the event type."""
@@ -175,21 +175,21 @@ WebhookData = TypeAliasType(
175
175
  WebhookDataRepresentativeUpdated,
176
176
  WebhookDataCancellationCreated,
177
177
  WebhookDataCapabilityRequested,
178
- WebhookDataTransferCreated,
178
+ WebhookDataCancellationUpdated,
179
179
  WebhookDataPaymentMethodEnabled,
180
180
  WebhookDataPaymentMethodDisabled,
181
181
  WebhookDataRefundCreated,
182
- WebhookDataCancellationUpdated,
183
182
  WebhookDataCardAutoUpdated,
184
183
  WebhookDataCapabilityUpdated,
185
- WebhookDataSweepUpdated,
186
184
  WebhookDataRefundUpdated,
185
+ WebhookDataSweepUpdated,
186
+ WebhookDataTransferCreated,
187
187
  WebhookDataBankAccountUpdated,
188
- WebhookDataTransferUpdated,
189
188
  WebhookDataWalletTransactionUpdated,
190
- WebhookDataDisputeUpdated,
191
189
  WebhookDataDisputeCreated,
190
+ WebhookDataDisputeUpdated,
192
191
  WebhookDataNetworkIDUpdated,
192
+ WebhookDataTransferUpdated,
193
193
  ],
194
194
  )
195
195
  r"""The data for the webhook event. The contents are based on the event type."""
@@ -13,7 +13,7 @@ class WebhookDataCapabilityRequestedTypedDict(TypedDict):
13
13
  capability_id: CapabilityID
14
14
  r"""Moov account capabilities.
15
15
 
16
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
16
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
17
17
  """
18
18
  foreign_id: NotRequired[str]
19
19
 
@@ -24,7 +24,7 @@ class WebhookDataCapabilityRequested(BaseModel):
24
24
  capability_id: Annotated[CapabilityID, pydantic.Field(alias="capabilityID")]
25
25
  r"""Moov account capabilities.
26
26
 
27
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
27
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
28
28
  """
29
29
 
30
30
  foreign_id: Annotated[Optional[str], pydantic.Field(alias="foreignID")] = None
@@ -14,7 +14,7 @@ class WebhookDataCapabilityUpdatedTypedDict(TypedDict):
14
14
  capability_id: CapabilityID
15
15
  r"""Moov account capabilities.
16
16
 
17
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
17
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
18
18
  """
19
19
  status: CapabilityStatus
20
20
  r"""The status of the capability requested for an account."""
@@ -27,7 +27,7 @@ class WebhookDataCapabilityUpdated(BaseModel):
27
27
  capability_id: Annotated[CapabilityID, pydantic.Field(alias="capabilityID")]
28
28
  r"""Moov account capabilities.
29
29
 
30
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
30
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
31
31
  """
32
32
 
33
33
  status: CapabilityStatus
@@ -4,7 +4,8 @@ from __future__ import annotations
4
4
  from .webhookdatatransferstatus import WebhookDataTransferStatus
5
5
  from moovio_sdk.types import BaseModel
6
6
  import pydantic
7
- from typing_extensions import Annotated, TypedDict
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
9
 
9
10
 
10
11
  class WebhookDataTransferCreatedTypedDict(TypedDict):
@@ -12,6 +13,7 @@ class WebhookDataTransferCreatedTypedDict(TypedDict):
12
13
  r"""The accountID which facilitated the transfer."""
13
14
  transfer_id: str
14
15
  status: WebhookDataTransferStatus
16
+ foreign_id: NotRequired[str]
15
17
 
16
18
 
17
19
  class WebhookDataTransferCreated(BaseModel):
@@ -21,3 +23,5 @@ class WebhookDataTransferCreated(BaseModel):
21
23
  transfer_id: Annotated[str, pydantic.Field(alias="transferID")]
22
24
 
23
25
  status: WebhookDataTransferStatus
26
+
27
+ foreign_id: Annotated[Optional[str], pydantic.Field(alias="foreignID")] = None
@@ -8,7 +8,8 @@ from .webhooktransferpaymentmethoddetails import (
8
8
  )
9
9
  from moovio_sdk.types import BaseModel
10
10
  import pydantic
11
- from typing_extensions import Annotated, TypedDict
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
13
 
13
14
 
14
15
  class WebhookDataTransferUpdatedTypedDict(TypedDict):
@@ -20,6 +21,7 @@ class WebhookDataTransferUpdatedTypedDict(TypedDict):
20
21
  r"""Payment method details for the source or destination of a transfer."""
21
22
  destination: WebhookTransferPaymentMethodDetailsTypedDict
22
23
  r"""Payment method details for the source or destination of a transfer."""
24
+ foreign_id: NotRequired[str]
23
25
 
24
26
 
25
27
  class WebhookDataTransferUpdated(BaseModel):
@@ -35,3 +37,5 @@ class WebhookDataTransferUpdated(BaseModel):
35
37
 
36
38
  destination: WebhookTransferPaymentMethodDetails
37
39
  r"""Payment method details for the source or destination of a transfer."""
40
+
41
+ foreign_id: Annotated[Optional[str], pydantic.Field(alias="foreignID")] = None
@@ -90,6 +90,10 @@ if TYPE_CHECKING:
90
90
  UpdateUnderwritingErrorError,
91
91
  UpdateUnderwritingErrorErrorTypedDict,
92
92
  )
93
+ from .upsertunderwritingerror import (
94
+ UpsertUnderwritingError,
95
+ UpsertUnderwritingErrorData,
96
+ )
93
97
 
94
98
  __all__ = [
95
99
  "APIError",
@@ -167,6 +171,8 @@ __all__ = [
167
171
  "UpdateUnderwritingErrorData",
168
172
  "UpdateUnderwritingErrorError",
169
173
  "UpdateUnderwritingErrorErrorTypedDict",
174
+ "UpsertUnderwritingError",
175
+ "UpsertUnderwritingErrorData",
170
176
  ]
171
177
 
172
178
  _dynamic_imports: dict[str, str] = {
@@ -245,6 +251,8 @@ _dynamic_imports: dict[str, str] = {
245
251
  "UpdateUnderwritingErrorData": ".updateunderwritingerror",
246
252
  "UpdateUnderwritingErrorError": ".updateunderwritingerror",
247
253
  "UpdateUnderwritingErrorErrorTypedDict": ".updateunderwritingerror",
254
+ "UpsertUnderwritingError": ".upsertunderwritingerror",
255
+ "UpsertUnderwritingErrorData": ".upsertunderwritingerror",
248
256
  }
249
257
 
250
258
 
@@ -110,6 +110,9 @@ class TransferData(BaseModel):
110
110
  ] = None
111
111
  r"""Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged."""
112
112
 
113
+ foreign_id: Annotated[Optional[str], pydantic.Field(alias="foreignID")] = None
114
+ r"""Optional alias from a foreign/external system which can be used to reference this resource."""
115
+
113
116
 
114
117
  class Transfer(Exception):
115
118
  r"""Details of a Transfer."""
@@ -0,0 +1,89 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from moovio_sdk import utils
5
+ from moovio_sdk.models.components import (
6
+ cardvolumedistributionerror as components_cardvolumedistributionerror,
7
+ collectfundserror as components_collectfundserror,
8
+ fulfillmentdetailserror as components_fulfillmentdetailserror,
9
+ moneytransfererror as components_moneytransfererror,
10
+ sendfundserror as components_sendfundserror,
11
+ volumebycustomertypeerror as components_volumebycustomertypeerror,
12
+ volumesharebycustomertypeerror as components_volumesharebycustomertypeerror,
13
+ )
14
+ from moovio_sdk.types import BaseModel
15
+ import pydantic
16
+ from typing import Optional
17
+ from typing_extensions import Annotated
18
+
19
+
20
+ class UpsertUnderwritingErrorData(BaseModel):
21
+ geographic_reach: Annotated[
22
+ Optional[str], pydantic.Field(alias="geographicReach")
23
+ ] = None
24
+
25
+ business_presence: Annotated[
26
+ Optional[str], pydantic.Field(alias="businessPresence")
27
+ ] = None
28
+
29
+ pending_litigation: Annotated[
30
+ Optional[str], pydantic.Field(alias="pendingLitigation")
31
+ ] = None
32
+
33
+ volume_share_by_customer_type: Annotated[
34
+ Optional[
35
+ components_volumesharebycustomertypeerror.VolumeShareByCustomerTypeError
36
+ ],
37
+ pydantic.Field(alias="volumeShareByCustomerType"),
38
+ ] = None
39
+
40
+ collect_funds: Annotated[
41
+ Optional[components_collectfundserror.CollectFundsError],
42
+ pydantic.Field(alias="collectFunds"),
43
+ ] = None
44
+
45
+ money_transfer: Annotated[
46
+ Optional[components_moneytransfererror.MoneyTransferError],
47
+ pydantic.Field(alias="moneyTransfer"),
48
+ ] = None
49
+
50
+ send_funds: Annotated[
51
+ Optional[components_sendfundserror.SendFundsError],
52
+ pydantic.Field(alias="sendFunds"),
53
+ ] = None
54
+
55
+ average_monthly_transaction_volume: Annotated[
56
+ Optional[str], pydantic.Field(alias="averageMonthlyTransactionVolume")
57
+ ] = None
58
+
59
+ average_transaction_size: Annotated[
60
+ Optional[str], pydantic.Field(alias="averageTransactionSize")
61
+ ] = None
62
+
63
+ max_transaction_size: Annotated[
64
+ Optional[str], pydantic.Field(alias="maxTransactionSize")
65
+ ] = None
66
+
67
+ volume_by_customer_type: Annotated[
68
+ Optional[components_volumebycustomertypeerror.VolumeByCustomerTypeError],
69
+ pydantic.Field(alias="volumeByCustomerType"),
70
+ ] = None
71
+
72
+ card_volume_distribution: Annotated[
73
+ Optional[components_cardvolumedistributionerror.CardVolumeDistributionError],
74
+ pydantic.Field(alias="cardVolumeDistribution"),
75
+ ] = None
76
+
77
+ fulfillment: Optional[
78
+ components_fulfillmentdetailserror.FulfillmentDetailsError
79
+ ] = None
80
+
81
+
82
+ class UpsertUnderwritingError(Exception):
83
+ data: UpsertUnderwritingErrorData
84
+
85
+ def __init__(self, data: UpsertUnderwritingErrorData):
86
+ self.data = data
87
+
88
+ def __str__(self) -> str:
89
+ return utils.marshal_json(self.data, UpsertUnderwritingErrorData)
@@ -943,6 +943,14 @@ if TYPE_CHECKING:
943
943
  RevokeOnboardingInviteResponse,
944
944
  RevokeOnboardingInviteResponseTypedDict,
945
945
  )
946
+ from .saveunderwriting import (
947
+ SaveUnderwritingGlobals,
948
+ SaveUnderwritingGlobalsTypedDict,
949
+ SaveUnderwritingRequest,
950
+ SaveUnderwritingRequestTypedDict,
951
+ SaveUnderwritingResponse,
952
+ SaveUnderwritingResponseTypedDict,
953
+ )
946
954
  from .searchinstitutions import (
947
955
  SearchInstitutionsGlobals,
948
956
  SearchInstitutionsGlobalsTypedDict,
@@ -1798,6 +1806,12 @@ __all__ = [
1798
1806
  "RevokeOnboardingInviteRequestTypedDict",
1799
1807
  "RevokeOnboardingInviteResponse",
1800
1808
  "RevokeOnboardingInviteResponseTypedDict",
1809
+ "SaveUnderwritingGlobals",
1810
+ "SaveUnderwritingGlobalsTypedDict",
1811
+ "SaveUnderwritingRequest",
1812
+ "SaveUnderwritingRequestTypedDict",
1813
+ "SaveUnderwritingResponse",
1814
+ "SaveUnderwritingResponseTypedDict",
1801
1815
  "SearchInstitutionsGlobals",
1802
1816
  "SearchInstitutionsGlobalsTypedDict",
1803
1817
  "SearchInstitutionsRequest",
@@ -2616,6 +2630,12 @@ _dynamic_imports: dict[str, str] = {
2616
2630
  "RevokeOnboardingInviteRequestTypedDict": ".revokeonboardinginvite",
2617
2631
  "RevokeOnboardingInviteResponse": ".revokeonboardinginvite",
2618
2632
  "RevokeOnboardingInviteResponseTypedDict": ".revokeonboardinginvite",
2633
+ "SaveUnderwritingGlobals": ".saveunderwriting",
2634
+ "SaveUnderwritingGlobalsTypedDict": ".saveunderwriting",
2635
+ "SaveUnderwritingRequest": ".saveunderwriting",
2636
+ "SaveUnderwritingRequestTypedDict": ".saveunderwriting",
2637
+ "SaveUnderwritingResponse": ".saveunderwriting",
2638
+ "SaveUnderwritingResponseTypedDict": ".saveunderwriting",
2619
2639
  "SearchInstitutionsGlobals": ".searchinstitutions",
2620
2640
  "SearchInstitutionsGlobalsTypedDict": ".searchinstitutions",
2621
2641
  "SearchInstitutionsRequest": ".searchinstitutions",
@@ -46,7 +46,7 @@ class DisableCapabilityRequestTypedDict(TypedDict):
46
46
  capability_id: components_capabilityid.CapabilityID
47
47
  r"""Moov account capabilities.
48
48
 
49
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
49
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
50
50
  """
51
51
 
52
52
 
@@ -64,7 +64,7 @@ class DisableCapabilityRequest(BaseModel):
64
64
  ]
65
65
  r"""Moov account capabilities.
66
66
 
67
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
67
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
68
68
  """
69
69
 
70
70
 
@@ -49,7 +49,7 @@ class GetCapabilityRequestTypedDict(TypedDict):
49
49
  capability_id: components_capabilityid.CapabilityID
50
50
  r"""Moov account capabilities.
51
51
 
52
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
52
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
53
53
  """
54
54
 
55
55
 
@@ -67,7 +67,7 @@ class GetCapabilityRequest(BaseModel):
67
67
  ]
68
68
  r"""Moov account capabilities.
69
69
 
70
- The `production-app` capability might appear in your list. This is a read-only capability that Moov requests and uses for account verification purposes. The capability remains active with your account and requires no additional action.
70
+ The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
71
71
  """
72
72
 
73
73