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 CHANGED
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "moovio_sdk"
6
- __version__: str = "0.11.3"
6
+ __version__: str = "0.11.5"
7
7
  __openapi_doc_version__: str = "latest"
8
- __gen_version__: str = "2.623.4"
9
- __user_agent__: str = "speakeasy-sdk/python 0.11.3 2.623.4 latest moovio_sdk"
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 typing_extensions import Annotated, TypedDict
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
- ach_return_code: ACHReturnCode
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
- ach_return_code: Annotated[ACHReturnCode, pydantic.Field(alias="achReturnCode")]
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
- payment_link_id: NotRequired[str]
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
- payment_link_id: Annotated[Optional[str], pydantic.Field(alias="paymentLinkID")] = (
140
- None
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 .transferstatus import TransferStatus
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: TransferStatus
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: TransferStatus
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 .transferstatus import TransferStatus
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: TransferStatus
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: TransferStatus
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 .wallettransactionstatus import WalletTransactionStatus
5
- from .webhookwalletavailablebalance import (
6
- WebhookWalletAvailableBalance,
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[WebhookWalletAvailableBalanceTypedDict]
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[WebhookWalletAvailableBalance],
35
- pydantic.Field(alias="availableBalance"),
33
+ Optional[WalletAvailableBalance], pydantic.Field(alias="availableBalance")
36
34
  ] = None
37
- r"""The available balance of a wallet."""
@@ -7,6 +7,7 @@ from enum import Enum
7
7
  class WebhookEventType(str, Enum):
8
8
  r"""The type of event that occurred."""
9
9
 
10
+ WILDCARD_ = "*"
10
11
  ACCOUNT_CREATED = "account.created"
11
12
  ACCOUNT_UPDATED = "account.updated"
12
13
  ACCOUNT_DELETED = "account.deleted"
@@ -101,9 +101,9 @@ class TransferData(BaseModel):
101
101
 
102
102
  occurrence_id: Annotated[Optional[str], pydantic.Field(alias="occurrenceID")] = None
103
103
 
104
- payment_link_id: Annotated[Optional[str], pydantic.Field(alias="paymentLinkID")] = (
105
- None
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
- payment_link_id: NotRequired[str]
68
- r"""Optional ID to filter for transfers associated with the payment link."""
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
- payment_link_id: Annotated[
125
+ payment_link_code: Annotated[
126
126
  Optional[str],
127
- pydantic.Field(alias="paymentLinkID"),
127
+ pydantic.Field(alias="paymentLinkCode"),
128
128
  FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
129
129
  ] = None
130
- r"""Optional ID to filter for transfers associated with the payment link."""
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
- payment_link_id: Optional[str] = None,
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 payment_link_id: Optional ID to filter for transfers associated with the payment link.
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
- payment_link_id=payment_link_id,
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
- payment_link_id: Optional[str] = None,
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 payment_link_id: Optional ID to filter for transfers associated with the payment link.
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
- payment_link_id=payment_link_id,
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.read` scope.
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.read` scope.
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], Dict[str, Any]]:
119
+ ) -> Tuple[str, Dict[str, Any], List[Tuple[str, Any]]]:
92
120
  form: Dict[str, Any] = {}
93
- files: Dict[str, Any] = {}
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
- file_fields: Dict[str, FieldInfo] = val.__class__.model_fields
116
-
117
- file_name = ""
118
- content = None
119
- content_type = None
120
-
121
- for file_field_name in file_fields:
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
- file_metadata = find_field_metadata(file_field, MultipartFormMetadata)
125
- if file_metadata is None:
126
- continue
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 file_metadata.content:
129
- content = getattr(val, file_field_name, None)
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
- file_name = getattr(val, file_field_name)
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[f_name] = (
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
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.read` scope.
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=2KDaLq98RxjGApCrfdGKoIdCyffpEBSyQ8FVnwItHBw,466
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=1i0D3cbmeaus4WvRbg7340uswOA8hVJzwQiicpOF8Uw,109891
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=EMv8fR_Zgbgz3h6ZMTQLKSiASjUSPH0GKI4SKojQGRM,3972
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=oh0Rs8w6f5_x7HDs1uGi0KfPw8JWKqeOgMbVqcXiIks,5447
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=3zxYyHlpG4x1lEnfJgUv4iba4GPwvoE4wVZgWfZKIss,5860
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=NhOXO9gNhr2dabuX3YLKBjbLaBzxh1wSApjOJHjyGXY,771
429
- moovio_sdk/models/components/webhookdatatransferupdated.py,sha256=3XrWadTHYIaGWEli4KGK3U1sjCX7ZF-JSrPbAtVsckY,1453
430
- moovio_sdk/models/components/webhookdatawallettransactionupdated.py,sha256=m4uY1heYJNFOUaWLbiUZ7S420rAvWlKbWCB3fv00wjs,1219
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=8_yAiclty6MJpZh4fmfZouxxkSc0KA0FYXEmpdUHfd8,1576
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=x3RFkOr_RCzc9xJBMIz_3bR2dOkJvV9213gDY1J_W1E,4405
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=N8k6Z6pUK2tBPuYiNSIgPugPDGOlvddoH5fYDLK16Xs,117304
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=9rwoAR74WBJfcTyu0kzaRv96LfyyAIU1l607Qc4h8_4,6352
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=kYdKqlfljoxCwWLCLiJELYFdAZPJlzNBLP3nqr2r1kk,134540
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=YSSijXrsM2nfrRHlPQejh1uRRKfoILomHL3d9xpJiy8,6058
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.3.dist-info/METADATA,sha256=o3Khj1TFTqXbY7lCeVfUKDNvkCZsDOxTeSij9YRjvyI,94650
647
- moovio_sdk-0.11.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
648
- moovio_sdk-0.11.3.dist-info/RECORD,,
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")]