moovio_sdk 0.11.3__py3-none-any.whl → 0.11.5__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.
- moovio_sdk/_version.py +3 -3
- moovio_sdk/models/components/__init__.py +3 -8
- moovio_sdk/models/components/bankaccountexception.py +14 -11
- moovio_sdk/models/components/createdtransfer.py +5 -0
- moovio_sdk/models/components/transfer.py +4 -4
- moovio_sdk/models/components/webhookdatatransfercreated.py +3 -5
- moovio_sdk/models/components/webhookdatatransferstatus.py +31 -0
- moovio_sdk/models/components/webhookdatatransferupdated.py +3 -5
- moovio_sdk/models/components/webhookdatawallettransactionupdated.py +6 -9
- moovio_sdk/models/components/webhookeventtype.py +1 -0
- moovio_sdk/models/errors/transfer.py +3 -3
- moovio_sdk/models/operations/__init__.py +20 -0
- moovio_sdk/models/operations/createtransferoptionsforaccount.py +82 -0
- moovio_sdk/models/operations/listtransfers.py +5 -5
- moovio_sdk/transfers.py +334 -8
- moovio_sdk/utils/forms.py +49 -28
- {moovio_sdk-0.11.3.dist-info → moovio_sdk-0.11.5.dist-info}/METADATA +11 -2
- {moovio_sdk-0.11.3.dist-info → moovio_sdk-0.11.5.dist-info}/RECORD +19 -18
- moovio_sdk/models/components/webhookwalletavailablebalance.py +0 -24
- {moovio_sdk-0.11.3.dist-info → moovio_sdk-0.11.5.dist-info}/WHEEL +0 -0
moovio_sdk/_version.py
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
import importlib.metadata
|
4
4
|
|
5
5
|
__title__: str = "moovio_sdk"
|
6
|
-
__version__: str = "0.11.
|
6
|
+
__version__: str = "0.11.5"
|
7
7
|
__openapi_doc_version__: str = "latest"
|
8
|
-
__gen_version__: str = "2.
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.11.
|
8
|
+
__gen_version__: str = "2.632.1"
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.11.5 2.632.1 latest moovio_sdk"
|
10
10
|
|
11
11
|
try:
|
12
12
|
if __package__ is not None:
|
@@ -956,6 +956,7 @@ if TYPE_CHECKING:
|
|
956
956
|
WebhookDataTransferCreated,
|
957
957
|
WebhookDataTransferCreatedTypedDict,
|
958
958
|
)
|
959
|
+
from .webhookdatatransferstatus import WebhookDataTransferStatus
|
959
960
|
from .webhookdatatransferupdated import (
|
960
961
|
WebhookDataTransferUpdated,
|
961
962
|
WebhookDataTransferUpdatedTypedDict,
|
@@ -970,10 +971,6 @@ if TYPE_CHECKING:
|
|
970
971
|
WebhookTransferPaymentMethodDetails,
|
971
972
|
WebhookTransferPaymentMethodDetailsTypedDict,
|
972
973
|
)
|
973
|
-
from .webhookwalletavailablebalance import (
|
974
|
-
WebhookWalletAvailableBalance,
|
975
|
-
WebhookWalletAvailableBalanceTypedDict,
|
976
|
-
)
|
977
974
|
from .wireinstitution import WireInstitution, WireInstitutionTypedDict
|
978
975
|
from .wireservices import WireServices, WireServicesTypedDict
|
979
976
|
|
@@ -1784,6 +1781,7 @@ __all__ = [
|
|
1784
1781
|
"WebhookDataTerminalApplicationUpdatedTypedDict",
|
1785
1782
|
"WebhookDataTransferCreated",
|
1786
1783
|
"WebhookDataTransferCreatedTypedDict",
|
1784
|
+
"WebhookDataTransferStatus",
|
1787
1785
|
"WebhookDataTransferUpdated",
|
1788
1786
|
"WebhookDataTransferUpdatedTypedDict",
|
1789
1787
|
"WebhookDataTypedDict",
|
@@ -1794,8 +1792,6 @@ __all__ = [
|
|
1794
1792
|
"WebhookEventTypedDict",
|
1795
1793
|
"WebhookTransferPaymentMethodDetails",
|
1796
1794
|
"WebhookTransferPaymentMethodDetailsTypedDict",
|
1797
|
-
"WebhookWalletAvailableBalance",
|
1798
|
-
"WebhookWalletAvailableBalanceTypedDict",
|
1799
1795
|
"WireInstitution",
|
1800
1796
|
"WireInstitutionTypedDict",
|
1801
1797
|
"WireServices",
|
@@ -2610,6 +2606,7 @@ _dynamic_imports: dict[str, str] = {
|
|
2610
2606
|
"WebhookDataTerminalApplicationUpdatedTypedDict": ".webhookdataterminalapplicationupdated",
|
2611
2607
|
"WebhookDataTransferCreated": ".webhookdatatransfercreated",
|
2612
2608
|
"WebhookDataTransferCreatedTypedDict": ".webhookdatatransfercreated",
|
2609
|
+
"WebhookDataTransferStatus": ".webhookdatatransferstatus",
|
2613
2610
|
"WebhookDataTransferUpdated": ".webhookdatatransferupdated",
|
2614
2611
|
"WebhookDataTransferUpdatedTypedDict": ".webhookdatatransferupdated",
|
2615
2612
|
"WebhookDataWalletTransactionUpdated": ".webhookdatawallettransactionupdated",
|
@@ -2619,8 +2616,6 @@ _dynamic_imports: dict[str, str] = {
|
|
2619
2616
|
"WebhookEventType": ".webhookeventtype",
|
2620
2617
|
"WebhookTransferPaymentMethodDetails": ".webhooktransferpaymentmethoddetails",
|
2621
2618
|
"WebhookTransferPaymentMethodDetailsTypedDict": ".webhooktransferpaymentmethoddetails",
|
2622
|
-
"WebhookWalletAvailableBalance": ".webhookwalletavailablebalance",
|
2623
|
-
"WebhookWalletAvailableBalanceTypedDict": ".webhookwalletavailablebalance",
|
2624
2619
|
"WireInstitution": ".wireinstitution",
|
2625
2620
|
"WireInstitutionTypedDict": ".wireinstitution",
|
2626
2621
|
"WireServices": ".wireservices",
|
@@ -5,13 +5,16 @@ from .achreturncode import ACHReturnCode
|
|
5
5
|
from .rtprejectioncode import RTPRejectionCode
|
6
6
|
from moovio_sdk.types import BaseModel
|
7
7
|
import pydantic
|
8
|
-
from
|
8
|
+
from typing import Optional
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
9
10
|
|
10
11
|
|
11
12
|
class BankAccountExceptionTypedDict(TypedDict):
|
12
13
|
r"""Reason for, and details related to, an `errored` or `verificationFailed` bank account status."""
|
13
14
|
|
14
|
-
|
15
|
+
description: str
|
16
|
+
r"""Details related to an `errored` or `verificationFailed` bank account status."""
|
17
|
+
ach_return_code: NotRequired[ACHReturnCode]
|
15
18
|
r"""The return code of an ACH transaction that caused the bank account status to change.
|
16
19
|
|
17
20
|
- R02: Account Closed
|
@@ -35,7 +38,7 @@ class BankAccountExceptionTypedDict(TypedDict):
|
|
35
38
|
- R38: Stop Payment on Source Document (Adjustment Entry)
|
36
39
|
- R39: Improper Source Document
|
37
40
|
"""
|
38
|
-
rtp_rejection_code: RTPRejectionCode
|
41
|
+
rtp_rejection_code: NotRequired[RTPRejectionCode]
|
39
42
|
r"""The rejection code of an RTP transaction that caused the bank account status to change.
|
40
43
|
|
41
44
|
- AC03: Account Invalid
|
@@ -46,14 +49,17 @@ class BankAccountExceptionTypedDict(TypedDict):
|
|
46
49
|
- AG03: Transaction Type Not Supported
|
47
50
|
- MD07: Customer Deceased
|
48
51
|
"""
|
49
|
-
description: str
|
50
|
-
r"""Details related to an `errored` or `verificationFailed` bank account status."""
|
51
52
|
|
52
53
|
|
53
54
|
class BankAccountException(BaseModel):
|
54
55
|
r"""Reason for, and details related to, an `errored` or `verificationFailed` bank account status."""
|
55
56
|
|
56
|
-
|
57
|
+
description: str
|
58
|
+
r"""Details related to an `errored` or `verificationFailed` bank account status."""
|
59
|
+
|
60
|
+
ach_return_code: Annotated[
|
61
|
+
Optional[ACHReturnCode], pydantic.Field(alias="achReturnCode")
|
62
|
+
] = None
|
57
63
|
r"""The return code of an ACH transaction that caused the bank account status to change.
|
58
64
|
|
59
65
|
- R02: Account Closed
|
@@ -79,8 +85,8 @@ class BankAccountException(BaseModel):
|
|
79
85
|
"""
|
80
86
|
|
81
87
|
rtp_rejection_code: Annotated[
|
82
|
-
RTPRejectionCode, pydantic.Field(alias="rtpRejectionCode")
|
83
|
-
]
|
88
|
+
Optional[RTPRejectionCode], pydantic.Field(alias="rtpRejectionCode")
|
89
|
+
] = None
|
84
90
|
r"""The rejection code of an RTP transaction that caused the bank account status to change.
|
85
91
|
|
86
92
|
- AC03: Account Invalid
|
@@ -91,6 +97,3 @@ class BankAccountException(BaseModel):
|
|
91
97
|
- AG03: Transaction Type Not Supported
|
92
98
|
- MD07: Customer Deceased
|
93
99
|
"""
|
94
|
-
|
95
|
-
description: str
|
96
|
-
r"""Details related to an `errored` or `verificationFailed` bank account status."""
|
@@ -50,6 +50,7 @@ class CreatedTransferTypedDict(TypedDict):
|
|
50
50
|
sweep_id: NotRequired[str]
|
51
51
|
schedule_id: NotRequired[str]
|
52
52
|
occurrence_id: NotRequired[str]
|
53
|
+
payment_link_code: NotRequired[str]
|
53
54
|
sales_tax_amount: NotRequired[AmountTypedDict]
|
54
55
|
r"""Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged."""
|
55
56
|
|
@@ -123,6 +124,10 @@ class CreatedTransfer(BaseModel):
|
|
123
124
|
|
124
125
|
occurrence_id: Annotated[Optional[str], pydantic.Field(alias="occurrenceID")] = None
|
125
126
|
|
127
|
+
payment_link_code: Annotated[
|
128
|
+
Optional[str], pydantic.Field(alias="paymentLinkCode")
|
129
|
+
] = None
|
130
|
+
|
126
131
|
sales_tax_amount: Annotated[
|
127
132
|
Optional[Amount], pydantic.Field(alias="salesTaxAmount")
|
128
133
|
] = None
|
@@ -55,7 +55,7 @@ class TransferTypedDict(TypedDict):
|
|
55
55
|
sweep_id: NotRequired[str]
|
56
56
|
schedule_id: NotRequired[str]
|
57
57
|
occurrence_id: NotRequired[str]
|
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
61
|
|
@@ -136,9 +136,9 @@ class Transfer(BaseModel):
|
|
136
136
|
|
137
137
|
occurrence_id: Annotated[Optional[str], pydantic.Field(alias="occurrenceID")] = None
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
139
|
+
payment_link_code: Annotated[
|
140
|
+
Optional[str], pydantic.Field(alias="paymentLinkCode")
|
141
|
+
] = None
|
142
142
|
|
143
143
|
sales_tax_amount: Annotated[
|
144
144
|
Optional[Amount], pydantic.Field(alias="salesTaxAmount")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
|
-
from .
|
4
|
+
from .webhookdatatransferstatus import WebhookDataTransferStatus
|
5
5
|
from moovio_sdk.types import BaseModel
|
6
6
|
import pydantic
|
7
7
|
from typing_extensions import Annotated, TypedDict
|
@@ -11,8 +11,7 @@ class WebhookDataTransferCreatedTypedDict(TypedDict):
|
|
11
11
|
account_id: str
|
12
12
|
r"""The accountID which facilitated the transfer."""
|
13
13
|
transfer_id: str
|
14
|
-
status:
|
15
|
-
r"""Status of a transfer."""
|
14
|
+
status: WebhookDataTransferStatus
|
16
15
|
|
17
16
|
|
18
17
|
class WebhookDataTransferCreated(BaseModel):
|
@@ -21,5 +20,4 @@ class WebhookDataTransferCreated(BaseModel):
|
|
21
20
|
|
22
21
|
transfer_id: Annotated[str, pydantic.Field(alias="transferID")]
|
23
22
|
|
24
|
-
status:
|
25
|
-
r"""Status of a transfer."""
|
23
|
+
status: WebhookDataTransferStatus
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from enum import Enum
|
5
|
+
|
6
|
+
|
7
|
+
class WebhookDataTransferStatus(str, Enum):
|
8
|
+
CREATED = "created"
|
9
|
+
PENDING = "pending"
|
10
|
+
COMPLETED = "completed"
|
11
|
+
FAILED = "failed"
|
12
|
+
REVERSED = "reversed"
|
13
|
+
QUEUED = "queued"
|
14
|
+
CANCELED = "canceled"
|
15
|
+
SOURCE_COMPLETED = "source.completed"
|
16
|
+
SOURCE_CORRECTED = "source.corrected"
|
17
|
+
SOURCE_INITIATED = "source.initiated"
|
18
|
+
SOURCE_RETURNED = "source.returned"
|
19
|
+
SOURCE_ORIGINATED = "source.originated"
|
20
|
+
SOURCE_CONFIRMED = "source.confirmed"
|
21
|
+
SOURCE_SETTLED = "source.settled"
|
22
|
+
SOURCE_FAILED = "source.failed"
|
23
|
+
SOURCE_CANCELED = "source.canceled"
|
24
|
+
DESTINATION_COMPLETED = "destination.completed"
|
25
|
+
DESTINATION_CORRECTED = "destination.corrected"
|
26
|
+
DESTINATION_INITIATED = "destination.initiated"
|
27
|
+
DESTINATION_RETURNED = "destination.returned"
|
28
|
+
DESTINATION_ORIGINATED = "destination.originated"
|
29
|
+
DESTINATION_CONFIRMED = "destination.confirmed"
|
30
|
+
DESTINATION_FAILED = "destination.failed"
|
31
|
+
DESTINATION_ACCEPTED_WITHOUT_POSTING = "destination.accepted-without-posting"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
|
-
from .
|
4
|
+
from .webhookdatatransferstatus import WebhookDataTransferStatus
|
5
5
|
from .webhooktransferpaymentmethoddetails import (
|
6
6
|
WebhookTransferPaymentMethodDetails,
|
7
7
|
WebhookTransferPaymentMethodDetailsTypedDict,
|
@@ -15,8 +15,7 @@ class WebhookDataTransferUpdatedTypedDict(TypedDict):
|
|
15
15
|
account_id: str
|
16
16
|
r"""The accountID which facilitated the transfer."""
|
17
17
|
transfer_id: str
|
18
|
-
status:
|
19
|
-
r"""Status of a transfer."""
|
18
|
+
status: WebhookDataTransferStatus
|
20
19
|
source: WebhookTransferPaymentMethodDetailsTypedDict
|
21
20
|
r"""Payment method details for the source or destination of a transfer."""
|
22
21
|
destination: WebhookTransferPaymentMethodDetailsTypedDict
|
@@ -29,8 +28,7 @@ class WebhookDataTransferUpdated(BaseModel):
|
|
29
28
|
|
30
29
|
transfer_id: Annotated[str, pydantic.Field(alias="transferID")]
|
31
30
|
|
32
|
-
status:
|
33
|
-
r"""Status of a transfer."""
|
31
|
+
status: WebhookDataTransferStatus
|
34
32
|
|
35
33
|
source: WebhookTransferPaymentMethodDetails
|
36
34
|
r"""Payment method details for the source or destination of a transfer."""
|
@@ -1,11 +1,11 @@
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
|
-
from .
|
5
|
-
|
6
|
-
|
7
|
-
WebhookWalletAvailableBalanceTypedDict,
|
4
|
+
from .walletavailablebalance import (
|
5
|
+
WalletAvailableBalance,
|
6
|
+
WalletAvailableBalanceTypedDict,
|
8
7
|
)
|
8
|
+
from .wallettransactionstatus import WalletTransactionStatus
|
9
9
|
from moovio_sdk.types import BaseModel
|
10
10
|
import pydantic
|
11
11
|
from typing import Optional
|
@@ -17,8 +17,7 @@ class WebhookDataWalletTransactionUpdatedTypedDict(TypedDict):
|
|
17
17
|
wallet_id: str
|
18
18
|
transaction_id: str
|
19
19
|
status: WalletTransactionStatus
|
20
|
-
available_balance: NotRequired[
|
21
|
-
r"""The available balance of a wallet."""
|
20
|
+
available_balance: NotRequired[WalletAvailableBalanceTypedDict]
|
22
21
|
|
23
22
|
|
24
23
|
class WebhookDataWalletTransactionUpdated(BaseModel):
|
@@ -31,7 +30,5 @@ class WebhookDataWalletTransactionUpdated(BaseModel):
|
|
31
30
|
status: WalletTransactionStatus
|
32
31
|
|
33
32
|
available_balance: Annotated[
|
34
|
-
Optional[
|
35
|
-
pydantic.Field(alias="availableBalance"),
|
33
|
+
Optional[WalletAvailableBalance], pydantic.Field(alias="availableBalance")
|
36
34
|
] = None
|
37
|
-
r"""The available balance of a wallet."""
|
@@ -101,9 +101,9 @@ class TransferData(BaseModel):
|
|
101
101
|
|
102
102
|
occurrence_id: Annotated[Optional[str], pydantic.Field(alias="occurrenceID")] = None
|
103
103
|
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
payment_link_code: Annotated[
|
105
|
+
Optional[str], pydantic.Field(alias="paymentLinkCode")
|
106
|
+
] = None
|
107
107
|
|
108
108
|
sales_tax_amount: Annotated[
|
109
109
|
Optional[components_amount.Amount], pydantic.Field(alias="salesTaxAmount")
|
@@ -162,6 +162,14 @@ if TYPE_CHECKING:
|
|
162
162
|
CreateTransferOptionsResponse,
|
163
163
|
CreateTransferOptionsResponseTypedDict,
|
164
164
|
)
|
165
|
+
from .createtransferoptionsforaccount import (
|
166
|
+
CreateTransferOptionsForAccountGlobals,
|
167
|
+
CreateTransferOptionsForAccountGlobalsTypedDict,
|
168
|
+
CreateTransferOptionsForAccountRequest,
|
169
|
+
CreateTransferOptionsForAccountRequestTypedDict,
|
170
|
+
CreateTransferOptionsForAccountResponse,
|
171
|
+
CreateTransferOptionsForAccountResponseTypedDict,
|
172
|
+
)
|
165
173
|
from .deletedisputeevidencefile import (
|
166
174
|
DeleteDisputeEvidenceFileGlobals,
|
167
175
|
DeleteDisputeEvidenceFileGlobalsTypedDict,
|
@@ -1193,6 +1201,12 @@ __all__ = [
|
|
1193
1201
|
"CreateTerminalApplicationResponseTypedDict",
|
1194
1202
|
"CreateTransferGlobals",
|
1195
1203
|
"CreateTransferGlobalsTypedDict",
|
1204
|
+
"CreateTransferOptionsForAccountGlobals",
|
1205
|
+
"CreateTransferOptionsForAccountGlobalsTypedDict",
|
1206
|
+
"CreateTransferOptionsForAccountRequest",
|
1207
|
+
"CreateTransferOptionsForAccountRequestTypedDict",
|
1208
|
+
"CreateTransferOptionsForAccountResponse",
|
1209
|
+
"CreateTransferOptionsForAccountResponseTypedDict",
|
1196
1210
|
"CreateTransferOptionsGlobals",
|
1197
1211
|
"CreateTransferOptionsGlobalsTypedDict",
|
1198
1212
|
"CreateTransferOptionsResponse",
|
@@ -2015,6 +2029,12 @@ _dynamic_imports: dict[str, str] = {
|
|
2015
2029
|
"CreateTransferOptionsGlobalsTypedDict": ".createtransferoptions",
|
2016
2030
|
"CreateTransferOptionsResponse": ".createtransferoptions",
|
2017
2031
|
"CreateTransferOptionsResponseTypedDict": ".createtransferoptions",
|
2032
|
+
"CreateTransferOptionsForAccountGlobals": ".createtransferoptionsforaccount",
|
2033
|
+
"CreateTransferOptionsForAccountGlobalsTypedDict": ".createtransferoptionsforaccount",
|
2034
|
+
"CreateTransferOptionsForAccountRequest": ".createtransferoptionsforaccount",
|
2035
|
+
"CreateTransferOptionsForAccountRequestTypedDict": ".createtransferoptionsforaccount",
|
2036
|
+
"CreateTransferOptionsForAccountResponse": ".createtransferoptionsforaccount",
|
2037
|
+
"CreateTransferOptionsForAccountResponseTypedDict": ".createtransferoptionsforaccount",
|
2018
2038
|
"DeleteDisputeEvidenceFileGlobals": ".deletedisputeevidencefile",
|
2019
2039
|
"DeleteDisputeEvidenceFileGlobalsTypedDict": ".deletedisputeevidencefile",
|
2020
2040
|
"DeleteDisputeEvidenceFileRequest": ".deletedisputeevidencefile",
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from moovio_sdk.models.components import (
|
5
|
+
createtransferoptions as components_createtransferoptions,
|
6
|
+
transferoptions as components_transferoptions,
|
7
|
+
)
|
8
|
+
from moovio_sdk.types import BaseModel
|
9
|
+
from moovio_sdk.utils import (
|
10
|
+
FieldMetadata,
|
11
|
+
HeaderMetadata,
|
12
|
+
PathParamMetadata,
|
13
|
+
RequestMetadata,
|
14
|
+
)
|
15
|
+
import pydantic
|
16
|
+
from typing import Dict, List, Optional
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
18
|
+
|
19
|
+
|
20
|
+
class CreateTransferOptionsForAccountGlobalsTypedDict(TypedDict):
|
21
|
+
x_moov_version: NotRequired[str]
|
22
|
+
r"""Specify an API version.
|
23
|
+
|
24
|
+
API versioning follows the format `vYYYY.QQ.BB`, where
|
25
|
+
- `YYYY` is the year
|
26
|
+
- `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
|
27
|
+
- `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter.
|
28
|
+
- For example, `v2024.01.00` is the initial release of the first quarter of 2024.
|
29
|
+
|
30
|
+
The `latest` version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
|
31
|
+
"""
|
32
|
+
|
33
|
+
|
34
|
+
class CreateTransferOptionsForAccountGlobals(BaseModel):
|
35
|
+
x_moov_version: Annotated[
|
36
|
+
Optional[str],
|
37
|
+
pydantic.Field(alias="x-moov-version"),
|
38
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
39
|
+
] = "v2024.01.00"
|
40
|
+
r"""Specify an API version.
|
41
|
+
|
42
|
+
API versioning follows the format `vYYYY.QQ.BB`, where
|
43
|
+
- `YYYY` is the year
|
44
|
+
- `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
|
45
|
+
- `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter.
|
46
|
+
- For example, `v2024.01.00` is the initial release of the first quarter of 2024.
|
47
|
+
|
48
|
+
The `latest` version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
|
49
|
+
"""
|
50
|
+
|
51
|
+
|
52
|
+
class CreateTransferOptionsForAccountRequestTypedDict(TypedDict):
|
53
|
+
account_id: str
|
54
|
+
r"""The partner's Moov account ID."""
|
55
|
+
create_transfer_options: (
|
56
|
+
components_createtransferoptions.CreateTransferOptionsTypedDict
|
57
|
+
)
|
58
|
+
|
59
|
+
|
60
|
+
class CreateTransferOptionsForAccountRequest(BaseModel):
|
61
|
+
account_id: Annotated[
|
62
|
+
str,
|
63
|
+
pydantic.Field(alias="accountID"),
|
64
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
65
|
+
]
|
66
|
+
r"""The partner's Moov account ID."""
|
67
|
+
|
68
|
+
create_transfer_options: Annotated[
|
69
|
+
components_createtransferoptions.CreateTransferOptions,
|
70
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
71
|
+
]
|
72
|
+
|
73
|
+
|
74
|
+
class CreateTransferOptionsForAccountResponseTypedDict(TypedDict):
|
75
|
+
headers: Dict[str, List[str]]
|
76
|
+
result: components_transferoptions.TransferOptionsTypedDict
|
77
|
+
|
78
|
+
|
79
|
+
class CreateTransferOptionsForAccountResponse(BaseModel):
|
80
|
+
headers: Dict[str, List[str]]
|
81
|
+
|
82
|
+
result: components_transferoptions.TransferOptions
|
@@ -64,8 +64,8 @@ class ListTransfersRequestTypedDict(TypedDict):
|
|
64
64
|
r"""Optional ID to filter for transfers in the same group."""
|
65
65
|
schedule_id: NotRequired[str]
|
66
66
|
r"""Optional ID to filter for transfer occurrences belonging to the same schedule."""
|
67
|
-
|
68
|
-
r"""Optional
|
67
|
+
payment_link_code: NotRequired[str]
|
68
|
+
r"""Optional code to filter for transfers associated with the payment link."""
|
69
69
|
refunded: NotRequired[bool]
|
70
70
|
r"""Optional parameter to only return refunded transfers."""
|
71
71
|
disputed: NotRequired[bool]
|
@@ -122,12 +122,12 @@ class ListTransfersRequest(BaseModel):
|
|
122
122
|
] = None
|
123
123
|
r"""Optional ID to filter for transfer occurrences belonging to the same schedule."""
|
124
124
|
|
125
|
-
|
125
|
+
payment_link_code: Annotated[
|
126
126
|
Optional[str],
|
127
|
-
pydantic.Field(alias="
|
127
|
+
pydantic.Field(alias="paymentLinkCode"),
|
128
128
|
FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
|
129
129
|
] = None
|
130
|
-
r"""Optional
|
130
|
+
r"""Optional code to filter for transfers associated with the payment link."""
|
131
131
|
|
132
132
|
refunded: Annotated[
|
133
133
|
Optional[bool],
|
moovio_sdk/transfers.py
CHANGED
@@ -11,6 +11,332 @@ from typing import Any, Dict, List, Mapping, Optional, Union
|
|
11
11
|
|
12
12
|
|
13
13
|
class Transfers(BaseSDK):
|
14
|
+
def generate_options_for_account(
|
15
|
+
self,
|
16
|
+
*,
|
17
|
+
account_id: str,
|
18
|
+
source: Union[
|
19
|
+
components.SourceDestinationOptions,
|
20
|
+
components.SourceDestinationOptionsTypedDict,
|
21
|
+
],
|
22
|
+
destination: Union[
|
23
|
+
components.SourceDestinationOptions,
|
24
|
+
components.SourceDestinationOptionsTypedDict,
|
25
|
+
],
|
26
|
+
amount: Union[components.Amount, components.AmountTypedDict],
|
27
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
28
|
+
server_url: Optional[str] = None,
|
29
|
+
timeout_ms: Optional[int] = None,
|
30
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
31
|
+
) -> operations.CreateTransferOptionsForAccountResponse:
|
32
|
+
r"""Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you
|
33
|
+
supply in the request body.
|
34
|
+
|
35
|
+
The accountID in the route should the partner's accountID.
|
36
|
+
|
37
|
+
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
38
|
+
|
39
|
+
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
40
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
41
|
+
|
42
|
+
:param account_id: The partner's Moov account ID.
|
43
|
+
:param source:
|
44
|
+
:param destination:
|
45
|
+
:param amount:
|
46
|
+
:param retries: Override the default retry configuration for this method
|
47
|
+
:param server_url: Override the default server URL for this method
|
48
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
49
|
+
:param http_headers: Additional headers to set or replace on requests.
|
50
|
+
"""
|
51
|
+
base_url = None
|
52
|
+
url_variables = None
|
53
|
+
if timeout_ms is None:
|
54
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
55
|
+
|
56
|
+
if server_url is not None:
|
57
|
+
base_url = server_url
|
58
|
+
else:
|
59
|
+
base_url = self._get_url(base_url, url_variables)
|
60
|
+
|
61
|
+
request = operations.CreateTransferOptionsForAccountRequest(
|
62
|
+
account_id=account_id,
|
63
|
+
create_transfer_options=components.CreateTransferOptions(
|
64
|
+
source=utils.get_pydantic_model(
|
65
|
+
source, components.SourceDestinationOptions
|
66
|
+
),
|
67
|
+
destination=utils.get_pydantic_model(
|
68
|
+
destination, components.SourceDestinationOptions
|
69
|
+
),
|
70
|
+
amount=utils.get_pydantic_model(amount, components.Amount),
|
71
|
+
),
|
72
|
+
)
|
73
|
+
|
74
|
+
req = self._build_request(
|
75
|
+
method="POST",
|
76
|
+
path="/accounts/{accountID}/transfer-options",
|
77
|
+
base_url=base_url,
|
78
|
+
url_variables=url_variables,
|
79
|
+
request=request,
|
80
|
+
request_body_required=True,
|
81
|
+
request_has_path_params=True,
|
82
|
+
request_has_query_params=True,
|
83
|
+
user_agent_header="user-agent",
|
84
|
+
accept_header_value="application/json",
|
85
|
+
http_headers=http_headers,
|
86
|
+
_globals=operations.CreateTransferOptionsForAccountGlobals(
|
87
|
+
x_moov_version=self.sdk_configuration.globals.x_moov_version,
|
88
|
+
),
|
89
|
+
security=self.sdk_configuration.security,
|
90
|
+
get_serialized_body=lambda: utils.serialize_request_body(
|
91
|
+
request.create_transfer_options,
|
92
|
+
False,
|
93
|
+
False,
|
94
|
+
"json",
|
95
|
+
components.CreateTransferOptions,
|
96
|
+
),
|
97
|
+
timeout_ms=timeout_ms,
|
98
|
+
)
|
99
|
+
|
100
|
+
if retries == UNSET:
|
101
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
102
|
+
retries = self.sdk_configuration.retry_config
|
103
|
+
|
104
|
+
retry_config = None
|
105
|
+
if isinstance(retries, utils.RetryConfig):
|
106
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
107
|
+
|
108
|
+
http_res = self.do_request(
|
109
|
+
hook_ctx=HookContext(
|
110
|
+
config=self.sdk_configuration,
|
111
|
+
base_url=base_url or "",
|
112
|
+
operation_id="createTransferOptionsForAccount",
|
113
|
+
oauth2_scopes=[],
|
114
|
+
security_source=get_security_from_env(
|
115
|
+
self.sdk_configuration.security, components.Security
|
116
|
+
),
|
117
|
+
),
|
118
|
+
request=req,
|
119
|
+
error_status_codes=[
|
120
|
+
"400",
|
121
|
+
"401",
|
122
|
+
"403",
|
123
|
+
"422",
|
124
|
+
"429",
|
125
|
+
"4XX",
|
126
|
+
"500",
|
127
|
+
"504",
|
128
|
+
"5XX",
|
129
|
+
],
|
130
|
+
retry_config=retry_config,
|
131
|
+
)
|
132
|
+
|
133
|
+
response_data: Any = None
|
134
|
+
if utils.match_response(http_res, "200", "application/json"):
|
135
|
+
return operations.CreateTransferOptionsForAccountResponse(
|
136
|
+
result=utils.unmarshal_json(http_res.text, components.TransferOptions),
|
137
|
+
headers=utils.get_response_headers(http_res.headers),
|
138
|
+
)
|
139
|
+
if utils.match_response(http_res, "400", "application/json"):
|
140
|
+
response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
|
141
|
+
raise errors.GenericError(data=response_data)
|
142
|
+
if utils.match_response(http_res, "422", "application/json"):
|
143
|
+
response_data = utils.unmarshal_json(
|
144
|
+
http_res.text, errors.TransferOptionsValidationErrorData
|
145
|
+
)
|
146
|
+
raise errors.TransferOptionsValidationError(data=response_data)
|
147
|
+
if utils.match_response(http_res, ["401", "403", "429"], "*"):
|
148
|
+
http_res_text = utils.stream_to_text(http_res)
|
149
|
+
raise errors.APIError(
|
150
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
151
|
+
)
|
152
|
+
if utils.match_response(http_res, ["500", "504"], "*"):
|
153
|
+
http_res_text = utils.stream_to_text(http_res)
|
154
|
+
raise errors.APIError(
|
155
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
156
|
+
)
|
157
|
+
if utils.match_response(http_res, "4XX", "*"):
|
158
|
+
http_res_text = utils.stream_to_text(http_res)
|
159
|
+
raise errors.APIError(
|
160
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
161
|
+
)
|
162
|
+
if utils.match_response(http_res, "5XX", "*"):
|
163
|
+
http_res_text = utils.stream_to_text(http_res)
|
164
|
+
raise errors.APIError(
|
165
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
166
|
+
)
|
167
|
+
|
168
|
+
content_type = http_res.headers.get("Content-Type")
|
169
|
+
http_res_text = utils.stream_to_text(http_res)
|
170
|
+
raise errors.APIError(
|
171
|
+
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
172
|
+
http_res.status_code,
|
173
|
+
http_res_text,
|
174
|
+
http_res,
|
175
|
+
)
|
176
|
+
|
177
|
+
async def generate_options_for_account_async(
|
178
|
+
self,
|
179
|
+
*,
|
180
|
+
account_id: str,
|
181
|
+
source: Union[
|
182
|
+
components.SourceDestinationOptions,
|
183
|
+
components.SourceDestinationOptionsTypedDict,
|
184
|
+
],
|
185
|
+
destination: Union[
|
186
|
+
components.SourceDestinationOptions,
|
187
|
+
components.SourceDestinationOptionsTypedDict,
|
188
|
+
],
|
189
|
+
amount: Union[components.Amount, components.AmountTypedDict],
|
190
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
191
|
+
server_url: Optional[str] = None,
|
192
|
+
timeout_ms: Optional[int] = None,
|
193
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
194
|
+
) -> operations.CreateTransferOptionsForAccountResponse:
|
195
|
+
r"""Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you
|
196
|
+
supply in the request body.
|
197
|
+
|
198
|
+
The accountID in the route should the partner's accountID.
|
199
|
+
|
200
|
+
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
201
|
+
|
202
|
+
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
203
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
204
|
+
|
205
|
+
:param account_id: The partner's Moov account ID.
|
206
|
+
:param source:
|
207
|
+
:param destination:
|
208
|
+
:param amount:
|
209
|
+
:param retries: Override the default retry configuration for this method
|
210
|
+
:param server_url: Override the default server URL for this method
|
211
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
212
|
+
:param http_headers: Additional headers to set or replace on requests.
|
213
|
+
"""
|
214
|
+
base_url = None
|
215
|
+
url_variables = None
|
216
|
+
if timeout_ms is None:
|
217
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
218
|
+
|
219
|
+
if server_url is not None:
|
220
|
+
base_url = server_url
|
221
|
+
else:
|
222
|
+
base_url = self._get_url(base_url, url_variables)
|
223
|
+
|
224
|
+
request = operations.CreateTransferOptionsForAccountRequest(
|
225
|
+
account_id=account_id,
|
226
|
+
create_transfer_options=components.CreateTransferOptions(
|
227
|
+
source=utils.get_pydantic_model(
|
228
|
+
source, components.SourceDestinationOptions
|
229
|
+
),
|
230
|
+
destination=utils.get_pydantic_model(
|
231
|
+
destination, components.SourceDestinationOptions
|
232
|
+
),
|
233
|
+
amount=utils.get_pydantic_model(amount, components.Amount),
|
234
|
+
),
|
235
|
+
)
|
236
|
+
|
237
|
+
req = self._build_request_async(
|
238
|
+
method="POST",
|
239
|
+
path="/accounts/{accountID}/transfer-options",
|
240
|
+
base_url=base_url,
|
241
|
+
url_variables=url_variables,
|
242
|
+
request=request,
|
243
|
+
request_body_required=True,
|
244
|
+
request_has_path_params=True,
|
245
|
+
request_has_query_params=True,
|
246
|
+
user_agent_header="user-agent",
|
247
|
+
accept_header_value="application/json",
|
248
|
+
http_headers=http_headers,
|
249
|
+
_globals=operations.CreateTransferOptionsForAccountGlobals(
|
250
|
+
x_moov_version=self.sdk_configuration.globals.x_moov_version,
|
251
|
+
),
|
252
|
+
security=self.sdk_configuration.security,
|
253
|
+
get_serialized_body=lambda: utils.serialize_request_body(
|
254
|
+
request.create_transfer_options,
|
255
|
+
False,
|
256
|
+
False,
|
257
|
+
"json",
|
258
|
+
components.CreateTransferOptions,
|
259
|
+
),
|
260
|
+
timeout_ms=timeout_ms,
|
261
|
+
)
|
262
|
+
|
263
|
+
if retries == UNSET:
|
264
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
265
|
+
retries = self.sdk_configuration.retry_config
|
266
|
+
|
267
|
+
retry_config = None
|
268
|
+
if isinstance(retries, utils.RetryConfig):
|
269
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
270
|
+
|
271
|
+
http_res = await self.do_request_async(
|
272
|
+
hook_ctx=HookContext(
|
273
|
+
config=self.sdk_configuration,
|
274
|
+
base_url=base_url or "",
|
275
|
+
operation_id="createTransferOptionsForAccount",
|
276
|
+
oauth2_scopes=[],
|
277
|
+
security_source=get_security_from_env(
|
278
|
+
self.sdk_configuration.security, components.Security
|
279
|
+
),
|
280
|
+
),
|
281
|
+
request=req,
|
282
|
+
error_status_codes=[
|
283
|
+
"400",
|
284
|
+
"401",
|
285
|
+
"403",
|
286
|
+
"422",
|
287
|
+
"429",
|
288
|
+
"4XX",
|
289
|
+
"500",
|
290
|
+
"504",
|
291
|
+
"5XX",
|
292
|
+
],
|
293
|
+
retry_config=retry_config,
|
294
|
+
)
|
295
|
+
|
296
|
+
response_data: Any = None
|
297
|
+
if utils.match_response(http_res, "200", "application/json"):
|
298
|
+
return operations.CreateTransferOptionsForAccountResponse(
|
299
|
+
result=utils.unmarshal_json(http_res.text, components.TransferOptions),
|
300
|
+
headers=utils.get_response_headers(http_res.headers),
|
301
|
+
)
|
302
|
+
if utils.match_response(http_res, "400", "application/json"):
|
303
|
+
response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
|
304
|
+
raise errors.GenericError(data=response_data)
|
305
|
+
if utils.match_response(http_res, "422", "application/json"):
|
306
|
+
response_data = utils.unmarshal_json(
|
307
|
+
http_res.text, errors.TransferOptionsValidationErrorData
|
308
|
+
)
|
309
|
+
raise errors.TransferOptionsValidationError(data=response_data)
|
310
|
+
if utils.match_response(http_res, ["401", "403", "429"], "*"):
|
311
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
312
|
+
raise errors.APIError(
|
313
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
314
|
+
)
|
315
|
+
if utils.match_response(http_res, ["500", "504"], "*"):
|
316
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
317
|
+
raise errors.APIError(
|
318
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
319
|
+
)
|
320
|
+
if utils.match_response(http_res, "4XX", "*"):
|
321
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
322
|
+
raise errors.APIError(
|
323
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
324
|
+
)
|
325
|
+
if utils.match_response(http_res, "5XX", "*"):
|
326
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
327
|
+
raise errors.APIError(
|
328
|
+
"API error occurred", http_res.status_code, http_res_text, http_res
|
329
|
+
)
|
330
|
+
|
331
|
+
content_type = http_res.headers.get("Content-Type")
|
332
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
333
|
+
raise errors.APIError(
|
334
|
+
f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
|
335
|
+
http_res.status_code,
|
336
|
+
http_res_text,
|
337
|
+
http_res,
|
338
|
+
)
|
339
|
+
|
14
340
|
def create(
|
15
341
|
self,
|
16
342
|
*,
|
@@ -409,7 +735,7 @@ class Transfers(BaseSDK):
|
|
409
735
|
end_date_time: Optional[datetime] = None,
|
410
736
|
group_id: Optional[str] = None,
|
411
737
|
schedule_id: Optional[str] = None,
|
412
|
-
|
738
|
+
payment_link_code: Optional[str] = None,
|
413
739
|
refunded: Optional[bool] = None,
|
414
740
|
disputed: Optional[bool] = None,
|
415
741
|
skip: Optional[int] = None,
|
@@ -438,7 +764,7 @@ class Transfers(BaseSDK):
|
|
438
764
|
:param end_date_time: Optional date-time which exclusively filters all transfers created before this date-time.
|
439
765
|
:param group_id: Optional ID to filter for transfers in the same group.
|
440
766
|
:param schedule_id: Optional ID to filter for transfer occurrences belonging to the same schedule.
|
441
|
-
:param
|
767
|
+
:param payment_link_code: Optional code to filter for transfers associated with the payment link.
|
442
768
|
:param refunded: Optional parameter to only return refunded transfers.
|
443
769
|
:param disputed: Optional parameter to only return disputed transfers.
|
444
770
|
:param skip:
|
@@ -465,7 +791,7 @@ class Transfers(BaseSDK):
|
|
465
791
|
end_date_time=end_date_time,
|
466
792
|
group_id=group_id,
|
467
793
|
schedule_id=schedule_id,
|
468
|
-
|
794
|
+
payment_link_code=payment_link_code,
|
469
795
|
refunded=refunded,
|
470
796
|
disputed=disputed,
|
471
797
|
skip=skip,
|
@@ -560,7 +886,7 @@ class Transfers(BaseSDK):
|
|
560
886
|
end_date_time: Optional[datetime] = None,
|
561
887
|
group_id: Optional[str] = None,
|
562
888
|
schedule_id: Optional[str] = None,
|
563
|
-
|
889
|
+
payment_link_code: Optional[str] = None,
|
564
890
|
refunded: Optional[bool] = None,
|
565
891
|
disputed: Optional[bool] = None,
|
566
892
|
skip: Optional[int] = None,
|
@@ -589,7 +915,7 @@ class Transfers(BaseSDK):
|
|
589
915
|
:param end_date_time: Optional date-time which exclusively filters all transfers created before this date-time.
|
590
916
|
:param group_id: Optional ID to filter for transfers in the same group.
|
591
917
|
:param schedule_id: Optional ID to filter for transfer occurrences belonging to the same schedule.
|
592
|
-
:param
|
918
|
+
:param payment_link_code: Optional code to filter for transfers associated with the payment link.
|
593
919
|
:param refunded: Optional parameter to only return refunded transfers.
|
594
920
|
:param disputed: Optional parameter to only return disputed transfers.
|
595
921
|
:param skip:
|
@@ -616,7 +942,7 @@ class Transfers(BaseSDK):
|
|
616
942
|
end_date_time=end_date_time,
|
617
943
|
group_id=group_id,
|
618
944
|
schedule_id=schedule_id,
|
619
|
-
|
945
|
+
payment_link_code=payment_link_code,
|
620
946
|
refunded=refunded,
|
621
947
|
disputed=disputed,
|
622
948
|
skip=skip,
|
@@ -2806,7 +3132,7 @@ class Transfers(BaseSDK):
|
|
2806
3132
|
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
2807
3133
|
|
2808
3134
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
2809
|
-
you'll need to specify the `/accounts/{accountID}/transfers.
|
3135
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
2810
3136
|
|
2811
3137
|
:param source:
|
2812
3138
|
:param destination:
|
@@ -2958,7 +3284,7 @@ class Transfers(BaseSDK):
|
|
2958
3284
|
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
2959
3285
|
|
2960
3286
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
2961
|
-
you'll need to specify the `/accounts/{accountID}/transfers.
|
3287
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
2962
3288
|
|
2963
3289
|
:param source:
|
2964
3290
|
:param destination:
|
moovio_sdk/utils/forms.py
CHANGED
@@ -86,11 +86,39 @@ def _populate_form(
|
|
86
86
|
return form
|
87
87
|
|
88
88
|
|
89
|
+
def _extract_file_properties(file_obj: Any) -> Tuple[str, Any, Any]:
|
90
|
+
"""Extract file name, content, and content type from a file object."""
|
91
|
+
file_fields: Dict[str, FieldInfo] = file_obj.__class__.model_fields
|
92
|
+
|
93
|
+
file_name = ""
|
94
|
+
content = None
|
95
|
+
content_type = None
|
96
|
+
|
97
|
+
for file_field_name in file_fields:
|
98
|
+
file_field = file_fields[file_field_name]
|
99
|
+
|
100
|
+
file_metadata = find_field_metadata(file_field, MultipartFormMetadata)
|
101
|
+
if file_metadata is None:
|
102
|
+
continue
|
103
|
+
|
104
|
+
if file_metadata.content:
|
105
|
+
content = getattr(file_obj, file_field_name, None)
|
106
|
+
elif file_field_name == "content_type":
|
107
|
+
content_type = getattr(file_obj, file_field_name, None)
|
108
|
+
else:
|
109
|
+
file_name = getattr(file_obj, file_field_name)
|
110
|
+
|
111
|
+
if file_name == "" or content is None:
|
112
|
+
raise ValueError("invalid multipart/form-data file")
|
113
|
+
|
114
|
+
return file_name, content, content_type
|
115
|
+
|
116
|
+
|
89
117
|
def serialize_multipart_form(
|
90
118
|
media_type: str, request: Any
|
91
|
-
) -> Tuple[str, Dict[str, Any],
|
119
|
+
) -> Tuple[str, Dict[str, Any], List[Tuple[str, Any]]]:
|
92
120
|
form: Dict[str, Any] = {}
|
93
|
-
files:
|
121
|
+
files: List[Tuple[str, Any]] = []
|
94
122
|
|
95
123
|
if not isinstance(request, BaseModel):
|
96
124
|
raise TypeError("invalid request body type")
|
@@ -112,39 +140,32 @@ def serialize_multipart_form(
|
|
112
140
|
f_name = field.alias if field.alias else name
|
113
141
|
|
114
142
|
if field_metadata.file:
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
file_field = file_fields[file_field_name]
|
143
|
+
if isinstance(val, List):
|
144
|
+
# Handle array of files
|
145
|
+
for file_obj in val:
|
146
|
+
if not _is_set(file_obj):
|
147
|
+
continue
|
148
|
+
|
149
|
+
file_name, content, content_type = _extract_file_properties(file_obj)
|
123
150
|
|
124
|
-
|
125
|
-
|
126
|
-
|
151
|
+
if content_type is not None:
|
152
|
+
files.append((f_name + "[]", (file_name, content, content_type)))
|
153
|
+
else:
|
154
|
+
files.append((f_name + "[]", (file_name, content)))
|
155
|
+
else:
|
156
|
+
# Handle single file
|
157
|
+
file_name, content, content_type = _extract_file_properties(val)
|
127
158
|
|
128
|
-
if
|
129
|
-
|
130
|
-
elif file_field_name == "content_type":
|
131
|
-
content_type = getattr(val, file_field_name, None)
|
159
|
+
if content_type is not None:
|
160
|
+
files.append((f_name, (file_name, content, content_type)))
|
132
161
|
else:
|
133
|
-
|
134
|
-
|
135
|
-
if file_name == "" or content is None:
|
136
|
-
raise ValueError("invalid multipart/form-data file")
|
137
|
-
|
138
|
-
if content_type is not None:
|
139
|
-
files[f_name] = (file_name, content, content_type)
|
140
|
-
else:
|
141
|
-
files[f_name] = (file_name, content)
|
162
|
+
files.append((f_name, (file_name, content)))
|
142
163
|
elif field_metadata.json:
|
143
|
-
files
|
164
|
+
files.append((f_name, (
|
144
165
|
None,
|
145
166
|
marshal_json(val, request_field_types[name]),
|
146
167
|
"application/json",
|
147
|
-
)
|
168
|
+
)))
|
148
169
|
else:
|
149
170
|
if isinstance(val, List):
|
150
171
|
values = []
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: moovio_sdk
|
3
|
-
Version: 0.11.
|
3
|
+
Version: 0.11.5
|
4
4
|
Summary: Python Client SDK Generated by Speakeasy.
|
5
5
|
Author: Speakeasy
|
6
6
|
Requires-Python: >=3.9.2
|
@@ -1055,6 +1055,15 @@ you'll need to specify the `/terminal-applications.write` scope.
|
|
1055
1055
|
|
1056
1056
|
### [transfers](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/transfers/README.md)
|
1057
1057
|
|
1058
|
+
* [generate_options_for_account](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/transfers/README.md#generate_options_for_account) - Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you
|
1059
|
+
supply in the request body.
|
1060
|
+
|
1061
|
+
The accountID in the route should the partner's accountID.
|
1062
|
+
|
1063
|
+
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
1064
|
+
|
1065
|
+
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
1066
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
1058
1067
|
* [create](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/transfers/README.md#create) - Move money by providing the source, destination, and amount in the request body.
|
1059
1068
|
|
1060
1069
|
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
@@ -1120,7 +1129,7 @@ supply in the request.
|
|
1120
1129
|
Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.
|
1121
1130
|
|
1122
1131
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
1123
|
-
you'll need to specify the `/accounts/{accountID}/transfers.
|
1132
|
+
you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
|
1124
1133
|
|
1125
1134
|
### [underwriting](https://github.com/moovfinancial/moov-python/blob/master/docs/sdks/underwriting/README.md)
|
1126
1135
|
|
@@ -3,7 +3,7 @@ moovio_sdk/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU1c
|
|
3
3
|
moovio_sdk/_hooks/registration.py,sha256=1QZB41w6If7I9dXiOSQx6dhSc6BPWrnI5Q5bMOr4iVA,624
|
4
4
|
moovio_sdk/_hooks/sdkhooks.py,sha256=2XuMgiV2N7UE7lN00Is-c3spxVWigYitXS6xSmS_Qow,2560
|
5
5
|
moovio_sdk/_hooks/types.py,sha256=Yi9LD8_sd4zG7_idzCZY4MTxTXMhDlmCdpQvU4dXFI4,3049
|
6
|
-
moovio_sdk/_version.py,sha256=
|
6
|
+
moovio_sdk/_version.py,sha256=WI5wrvdZMILBk0H1GxdGlY52IxxrBX5HNB6NaGjOTyg,466
|
7
7
|
moovio_sdk/account_terminal_applications.py,sha256=QYvrGYr0btoK5uCZYngGA2qDbwzSb9jDcNULW23qtDA,42239
|
8
8
|
moovio_sdk/accounts.py,sha256=GU155vJqo6C__ll5XcyntnDsuQ20rsdcI5jB57I2g7Y,109095
|
9
9
|
moovio_sdk/adjustments.py,sha256=ZGmgUTm53He6-6lvOMgmx1eLJ5TjCgAvn5ULgHpMgNc,19460
|
@@ -27,7 +27,7 @@ moovio_sdk/industries.py,sha256=cj1Q3c64ztMkpW8LM5goCowlEp6frPAl_koJ2iWGqAg,1033
|
|
27
27
|
moovio_sdk/institutions.py,sha256=Pb-3GEP9HvMWYUDYWY0Jf_Yp-J0Nah_1j070U1gAzWY,22364
|
28
28
|
moovio_sdk/issuing_transactions.py,sha256=wIEDq-pbgTIJDJ8XVGCzTqkyFKXQZNmeQzpK3cTxmGs,53682
|
29
29
|
moovio_sdk/models/__init__.py,sha256=wIW9sbvSKlrGyoPY4mXvHqw-_Inpl6zqpN6U6j-w6SU,83
|
30
|
-
moovio_sdk/models/components/__init__.py,sha256=
|
30
|
+
moovio_sdk/models/components/__init__.py,sha256=f1SRR1ECF27AJqH5MDXp289S_pZfEQ-RauUY6fNT4Q8,109680
|
31
31
|
moovio_sdk/models/components/account.py,sha256=QejMoPHYyHF-6TRrUVKYyfD_6Qbl7lFVOEaE8zlOgmI,4181
|
32
32
|
moovio_sdk/models/components/accountcapability.py,sha256=LJ908Zr4lw2qtMwUMLWoscTUjj5wV7YlZ4Z0Vv_abjg,527
|
33
33
|
moovio_sdk/models/components/accountcountries.py,sha256=sI1VAu3PqS2HTOarkT7f6FbkgUT55NL57PvAZKcbRHw,456
|
@@ -70,7 +70,7 @@ moovio_sdk/models/components/authorizeduser.py,sha256=bvuz-KTdDULbaXodHxL5Gs0ZuK
|
|
70
70
|
moovio_sdk/models/components/authtoken.py,sha256=0s9C-q8s6clVMVmCAfRvlM0_SXdKqQ0TCIXF-G6Pbfs,1369
|
71
71
|
moovio_sdk/models/components/authtokenrequest.py,sha256=m9p3exncjy13k0bpeNCIyPchm9o_15i1ImIuhwmsyEU,2231
|
72
72
|
moovio_sdk/models/components/bankaccount.py,sha256=1YKOVySbAWx0PQW4eMIj2ujmCQUN1NoSeacjowKR2K4,3966
|
73
|
-
moovio_sdk/models/components/bankaccountexception.py,sha256=
|
73
|
+
moovio_sdk/models/components/bankaccountexception.py,sha256=v0P2SAI2_rrLNSJNqGNTaqXNhEjRdsMiT8ayd-rmnqw,4087
|
74
74
|
moovio_sdk/models/components/bankaccountholdertype.py,sha256=wYxX5Ytun1vKdZY81XAiTlKXGj0KagspJfC6xn5l0Ws,300
|
75
75
|
moovio_sdk/models/components/bankaccountintegration.py,sha256=Yhyg5wz5hl8zNl7c0Ppwej4D7djadm1ISqtoI8E7IXA,1139
|
76
76
|
moovio_sdk/models/components/bankaccountpayload.py,sha256=KyDbvi3kvKfn9Q9QHXU_zWzZN9SNhwtAhxpmmxAURcE,596
|
@@ -143,7 +143,7 @@ moovio_sdk/models/components/createauthorizedusererror.py,sha256=esLjn87FfadlgHb
|
|
143
143
|
moovio_sdk/models/components/createauthorizeduserupdate.py,sha256=efRwyAfTzZVp1GNdUIagkpzr3rN17SSJ4-E7Y3596ys,945
|
144
144
|
moovio_sdk/models/components/createbusinesserror.py,sha256=qnDwlpaC2y1c6cD9XmRvsU65VAnFEuvvW2qimrCaZU4,2489
|
145
145
|
moovio_sdk/models/components/createbusinessprofile.py,sha256=OGo1xgFTf5C-TNEsdSnVEeLaEfaGVWYrdC64MXIqShc,2800
|
146
|
-
moovio_sdk/models/components/createdtransfer.py,sha256=
|
146
|
+
moovio_sdk/models/components/createdtransfer.py,sha256=Q-vpYye36hWTQYvCVb96Z_7wUb23LGO-a3UdeHIAKfA,5598
|
147
147
|
moovio_sdk/models/components/createevidencefilemultipart.py,sha256=GYb0qHNt0TStHTs7jrEoPxxXPuSTrV473-zNe0SoXsU,1895
|
148
148
|
moovio_sdk/models/components/createevidencetext.py,sha256=IxJdhf131DDpBgHdD2PramkohfKR5kQ5uXKKJ5TB5GQ,608
|
149
149
|
moovio_sdk/models/components/createfeeplanagreement.py,sha256=FK4oIE4nZl2JbKRnzXL_3nlbVxzY9fR7_Cy9Nrg9J1o,386
|
@@ -363,7 +363,7 @@ moovio_sdk/models/components/termsofservicetoken.py,sha256=VF0w2YMAJiqyz9INBhb_M
|
|
363
363
|
moovio_sdk/models/components/termsofservicetokenupdate.py,sha256=Uc1zc1ItdU9D-z8aOYl4S6tkXi6lMzEYiz_xXQzIKBM,559
|
364
364
|
moovio_sdk/models/components/tokentype.py,sha256=vPgHYR7el4ertQG3I5a8OTHknyBv3Fww-JKbWzApvsw,272
|
365
365
|
moovio_sdk/models/components/transactionsource.py,sha256=9zZa2lvqld19YeO0u0Vjqq2HfKRDkqGD9zNL6jNmBoA,484
|
366
|
-
moovio_sdk/models/components/transfer.py,sha256=
|
366
|
+
moovio_sdk/models/components/transfer.py,sha256=uHwYLNTTlDDINXGNduZGKS--Y434ZHRuQb71CWzK3Z4,5864
|
367
367
|
moovio_sdk/models/components/transferaccount.py,sha256=-gIji284RTf4FI8BUomUHEMVm1h6cae9d4a7tGWxL6c,505
|
368
368
|
moovio_sdk/models/components/transferdestination.py,sha256=sey0FeRW8Ol8dltrHnD30sid-1Inq4L0VoCaxvUkIhc,3389
|
369
369
|
moovio_sdk/models/components/transferfailurereason.py,sha256=4bat3UuscPjAZ50aHri3pkQkPz7Kd-q3xvaYGV8VAxQ,475
|
@@ -425,13 +425,13 @@ moovio_sdk/models/components/webhookdatasweepcreated.py,sha256=ECsQjmxfcV462XEVK
|
|
425
425
|
moovio_sdk/models/components/webhookdatasweepupdated.py,sha256=aklkS5V4XxK2Ijy-Syv1UsfLIoRrgyv2aT1turMr2vw,722
|
426
426
|
moovio_sdk/models/components/webhookdataterminalapplicationcreated.py,sha256=ta6eF_--P6P7vcJVI92jn8K9t-0VOoKVbmoKcCXLyr8,713
|
427
427
|
moovio_sdk/models/components/webhookdataterminalapplicationupdated.py,sha256=dxztCEry7NX76U9E5s2pJItPBTu0v50v9T_CjWIO4iY,713
|
428
|
-
moovio_sdk/models/components/webhookdatatransfercreated.py,sha256=
|
429
|
-
moovio_sdk/models/components/
|
430
|
-
moovio_sdk/models/components/
|
428
|
+
moovio_sdk/models/components/webhookdatatransfercreated.py,sha256=RCK8BYyjwl3j04Pg5GJwrL5XsEo7RhE0ptTl6dhgz-8,749
|
429
|
+
moovio_sdk/models/components/webhookdatatransferstatus.py,sha256=2VZm-PIQ-IXqxqPIy628vfDx6xo3ejt7D2yYPPJpSBw,1154
|
430
|
+
moovio_sdk/models/components/webhookdatatransferupdated.py,sha256=xPE6N_XesOfsXXt0pOCqsdLJdv47IFLdPvwXOpCdnyU,1431
|
431
|
+
moovio_sdk/models/components/webhookdatawallettransactionupdated.py,sha256=Zi8xDtCbJ1-prGIwvV57rmAhW5GlWLRHSXNhLiXW6gg,1083
|
431
432
|
moovio_sdk/models/components/webhookevent.py,sha256=MNjoiBZwOPr0oDzpK7elJRa1w_RJbc40L2JD4yZSyWo,1413
|
432
|
-
moovio_sdk/models/components/webhookeventtype.py,sha256=
|
433
|
+
moovio_sdk/models/components/webhookeventtype.py,sha256=Pfmhhf77wBjNZ0msKUsCCKcEZ96FFnGl_Ht27BxsoGk,1596
|
433
434
|
moovio_sdk/models/components/webhooktransferpaymentmethoddetails.py,sha256=UW1IFVidGtC0bOT5sV0m0uiJwblvbP6KopkTqkj5SYg,688
|
434
|
-
moovio_sdk/models/components/webhookwalletavailablebalance.py,sha256=asDto4Ap7EWBnbFLl1a9QcHtFU6gF8nIHReKuswrQac,580
|
435
435
|
moovio_sdk/models/components/wireinstitution.py,sha256=HAouMCzuM9UtkAW9hgtRW8cMq8vBgYuxj_NFQxsiCbY,810
|
436
436
|
moovio_sdk/models/components/wireservices.py,sha256=5LbfeTazeWxrCRk2HBCtyByTZSeg9g4fdhK81lmYICo,1207
|
437
437
|
moovio_sdk/models/errors/__init__.py,sha256=F8ie8g1kKJRSmDWp3Ijj42JabtGhCbIqHimzbVfk7M4,11106
|
@@ -462,7 +462,7 @@ moovio_sdk/models/errors/reversalvalidationerror.py,sha256=s5rOORHo7UIWb67hOsm3Y
|
|
462
462
|
moovio_sdk/models/errors/revoketokenrequesterror.py,sha256=bkU4hh6nzuCr6pF9CvcW9tP9BBufWpQnaVe8W3ZzJy8,599
|
463
463
|
moovio_sdk/models/errors/schedulevalidationerror.py,sha256=ca8VYtFOcN8Su1cOYclEIXlDQWGZVbvWwRcUEPU6mQA,651
|
464
464
|
moovio_sdk/models/errors/terminalapplicationerror.py,sha256=mCl6UPQ2RGCeQ-Mqd0WfSZRC4xO0-36ZvqIt0pi1dIc,975
|
465
|
-
moovio_sdk/models/errors/transfer.py,sha256=
|
465
|
+
moovio_sdk/models/errors/transfer.py,sha256=MJNosdw7iGsfyrgTFpeI7aPqk1y8-VQS1SjVYCcB4nY,4407
|
466
466
|
moovio_sdk/models/errors/transferoptionsvalidationerror.py,sha256=X9NCkEUJfoonyhY82EwKiC-fObGZGiZn-tWe7DfxdWg,665
|
467
467
|
moovio_sdk/models/errors/transfervalidationerror.py,sha256=Puvl57i9_mK-AaZExReYAsxl156p3i4K-ycuiFygPgA,1471
|
468
468
|
moovio_sdk/models/errors/updateaccount.py,sha256=tIAS1AIFxhfhyvxCPRF_9QF3sm576QORtIUYJ4Yvmac,790
|
@@ -472,7 +472,7 @@ moovio_sdk/models/errors/updatepaymentlinkerror.py,sha256=FrRZvrNFtNBuaKyZKStjEM
|
|
472
472
|
moovio_sdk/models/errors/updateunderwritingerror.py,sha256=A8XDduhlAQo6xcZE29atSa7UsQ9uEg2xbbur-V1yUbg,2409
|
473
473
|
moovio_sdk/models/internal/__init__.py,sha256=7kjDhcmI428H0YHeZHJRcKSXQE1N2dTPHi3FtLVFaMM,1120
|
474
474
|
moovio_sdk/models/internal/globals.py,sha256=uz3scUHVTLawU2bzU4ov4C3bSRwoNolTJ5O27QSMIgA,1701
|
475
|
-
moovio_sdk/models/operations/__init__.py,sha256=
|
475
|
+
moovio_sdk/models/operations/__init__.py,sha256=uDxqKfR5Uu_tETBwEKH7MJ4aZOravYdMT59iGu220v4,118504
|
476
476
|
moovio_sdk/models/operations/acceptdispute.py,sha256=imJTeB7PuXqfKBqA-VkIAFFNpW92U7DMxPx7CEb9eDQ,2544
|
477
477
|
moovio_sdk/models/operations/assignaccountcountries.py,sha256=NIGZ5oNIW7Ei4Y7WNnMVqcYUSQgIq3o_TlR0_ptwLJg,2753
|
478
478
|
moovio_sdk/models/operations/cancelschedule.py,sha256=X0vmSDaW6vyM387Tf02KSBCZNggKxNYm_T0W5zJY494,2394
|
@@ -494,6 +494,7 @@ moovio_sdk/models/operations/createsweepconfig.py,sha256=mC-dbVIizvTJjYTygLrFOO-
|
|
494
494
|
moovio_sdk/models/operations/createterminalapplication.py,sha256=n7mnj-ixVXSV8El7dVhwueNm4Pd8xTiTefI1oayrIGE,2188
|
495
495
|
moovio_sdk/models/operations/createtransfer.py,sha256=UeGpxBVsHy_sES-xLfdAqNFXExQxYgbPIQOOlAItzcU,4706
|
496
496
|
moovio_sdk/models/operations/createtransferoptions.py,sha256=DCrQtu3VPSdEOSt8gFnZHcCtRIN-c6NHBohifMolCzg,2139
|
497
|
+
moovio_sdk/models/operations/createtransferoptionsforaccount.py,sha256=l0rIf6sLKZU4Kq5PvmTJtYYlMRqpvXuhgIn5_P7alT4,3005
|
497
498
|
moovio_sdk/models/operations/deletedisputeevidencefile.py,sha256=NHUuvakVuXiCwqI_gDDgjhFAAfKypztOzasr0S78KQE,2648
|
498
499
|
moovio_sdk/models/operations/deleterepresentative.py,sha256=H3bKQTMMsB9_wCqxfZqwgq-NljV5W-lGWzXIHEnxxv0,2582
|
499
500
|
moovio_sdk/models/operations/deleteterminalapplication.py,sha256=4PWTRg4RR--XoZK-ZZgjNYlMbefs-Diioc8Om1bbHO8,2307
|
@@ -580,7 +581,7 @@ moovio_sdk/models/operations/listschedules.py,sha256=EUMVtQGVBLGU8xx56WnfmzVRNzN
|
|
580
581
|
moovio_sdk/models/operations/listsweepconfigs.py,sha256=FyXZ5L01-nF52nj4WCqKEwGEERoZtTzW9KJxnIwb0wA,2410
|
581
582
|
moovio_sdk/models/operations/listsweeps.py,sha256=RcjWsbeutBY68KA1J3NevCjcAgrZOnl60xQA6RWgSdo,3659
|
582
583
|
moovio_sdk/models/operations/listterminalapplications.py,sha256=auLtS7-MJZStu2qvn6drroaW5Hfyb7lF2ELdN4Ue-88,2327
|
583
|
-
moovio_sdk/models/operations/listtransfers.py,sha256=
|
584
|
+
moovio_sdk/models/operations/listtransfers.py,sha256=_DKlv_-Vlnfwdpit6C6QgSyD9AMzK4BbbCwk9AJXqV8,6362
|
584
585
|
moovio_sdk/models/operations/listwallets.py,sha256=Yfpc2ZMHjDiCUSl9R9NddqEezlM2mGXzGlWxMp_xyAY,2350
|
585
586
|
moovio_sdk/models/operations/listwallettransactions.py,sha256=Q6fdn8q2IkY9tM31mtWkCrVvpKSUt4spSFuJ97UVNTc,7848
|
586
587
|
moovio_sdk/models/operations/ping.py,sha256=IDLagRGZUKJb7qEfL4llEcSl0jTC_zFFNfJFmJzV8Tg,1955
|
@@ -621,7 +622,7 @@ moovio_sdk/sdk.py,sha256=vhhj5348UUYxzqLsr02Kz6uG_dmtuJixW33zawZDPCY,11878
|
|
621
622
|
moovio_sdk/sdkconfiguration.py,sha256=vvZHznUDI2m3Z8ddTKDFUXkQu4mNBGX8Q9Zx7XpR3WY,1665
|
622
623
|
moovio_sdk/sweeps.py,sha256=21hOyOLl9tvoPwxOjVFFuqTobvaNxM14dsX-aK1z3Hc,67275
|
623
624
|
moovio_sdk/terminal_applications.py,sha256=1z4WiRExM7WgGUuDjQW_ew4Ih69DLfYKzslgRpqvJjA,43206
|
624
|
-
moovio_sdk/transfers.py,sha256=
|
625
|
+
moovio_sdk/transfers.py,sha256=VCqVDIVYT9oJWDl2yW5BBw04BBqC0j0PIROfwgF-6qk,148368
|
625
626
|
moovio_sdk/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
|
626
627
|
moovio_sdk/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
|
627
628
|
moovio_sdk/underwriting.py,sha256=UIAXyd3kdEr2eCIUpE11IB4uD1AelDr3T-qBHweb52s,24541
|
@@ -630,7 +631,7 @@ moovio_sdk/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_
|
|
630
631
|
moovio_sdk/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
|
631
632
|
moovio_sdk/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
|
632
633
|
moovio_sdk/utils/eventstreaming.py,sha256=LtcrfJYw4nP2Oe4Wl0-cEURLzRGYReRGWNFY5wYECIE,6186
|
633
|
-
moovio_sdk/utils/forms.py,sha256=
|
634
|
+
moovio_sdk/utils/forms.py,sha256=EJdnrfIkuwpDtekyHutla0HjI_FypTYcmYNyPKEu_W0,6874
|
634
635
|
moovio_sdk/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
|
635
636
|
moovio_sdk/utils/logger.py,sha256=Q2OOqH956ohxf1tNtC-vJvkEUxoGeP0I43aGEuQJFRQ,673
|
636
637
|
moovio_sdk/utils/metadata.py,sha256=Per2KFXXOqOtoUWXrlIfjrSrBg199KrRW0nKQDgHIBU,3136
|
@@ -643,6 +644,6 @@ moovio_sdk/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
643
644
|
moovio_sdk/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
644
645
|
moovio_sdk/wallet_transactions.py,sha256=WVfhf2iPS5qJ3ZWEYn5e3XXKpc-tNgoKUSsD9Q-8LIM,25131
|
645
646
|
moovio_sdk/wallets.py,sha256=uGrFzCj6wCmdsEleXWF77njq9L185aWNHlRzFekKs98,19438
|
646
|
-
moovio_sdk-0.11.
|
647
|
-
moovio_sdk-0.11.
|
648
|
-
moovio_sdk-0.11.
|
647
|
+
moovio_sdk-0.11.5.dist-info/METADATA,sha256=GxDtj0la1VYjsY0-n-akBels8i3IkvRfleDGzv_u5CM,95312
|
648
|
+
moovio_sdk-0.11.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
649
|
+
moovio_sdk-0.11.5.dist-info/RECORD,,
|
@@ -1,24 +0,0 @@
|
|
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
|
-
import pydantic
|
6
|
-
from typing_extensions import Annotated, TypedDict
|
7
|
-
|
8
|
-
|
9
|
-
class WebhookWalletAvailableBalanceTypedDict(TypedDict):
|
10
|
-
r"""The available balance of a wallet."""
|
11
|
-
|
12
|
-
currency: str
|
13
|
-
value: int
|
14
|
-
value_decimal: str
|
15
|
-
|
16
|
-
|
17
|
-
class WebhookWalletAvailableBalance(BaseModel):
|
18
|
-
r"""The available balance of a wallet."""
|
19
|
-
|
20
|
-
currency: str
|
21
|
-
|
22
|
-
value: int
|
23
|
-
|
24
|
-
value_decimal: Annotated[str, pydantic.Field(alias="valueDecimal")]
|
File without changes
|