diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 24f979195..09eb6e203 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.328.0" + ".": "0.329.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 018fcf798..14e640b1e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 217 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-6d19e08b9b1b9aa23a3a0c86db6eb3500b3a4aaf2d9f549a0177c5bebe67d098.yml -openapi_spec_hash: eec4190f1aca04351de8891c6a9b37da +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-61210b27ac135ed841515ad3c3dfedaf42dc1398b0a3ed63bbd6c154d1b31a6a.yml +openapi_spec_hash: b0d2957f6269776252f0ddaa6489772a config_hash: e1885b38eded054b77308a024c5d80cc diff --git a/CHANGELOG.md b/CHANGELOG.md index 04a8daab1..1c100191f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.329.0 (2025-09-17) + +Full Changelog: [v0.328.0...v0.329.0](https://github.com/Increase/increase-python/compare/v0.328.0...v0.329.0) + +### Features + +* **api:** api update ([9ca82f2](https://github.com/Increase/increase-python/commit/9ca82f2dcd1a9133d67c88990edb16ffc8221c8c)) + + +### Chores + +* **internal:** update pydantic dependency ([5b20dc0](https://github.com/Increase/increase-python/commit/5b20dc034ac27e1b21ce98b370362b40d98971b8)) + ## 0.328.0 (2025-09-16) Full Changelog: [v0.327.0...v0.328.0](https://github.com/Increase/increase-python/compare/v0.327.0...v0.328.0) diff --git a/pyproject.toml b/pyproject.toml index cc4d602a0..e838b1016 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "increase" -version = "0.328.0" +version = "0.329.0" description = "The official Python library for the increase API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/requirements-dev.lock b/requirements-dev.lock index 8269c8312..d0fe722c9 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -88,9 +88,9 @@ pluggy==1.5.0 propcache==0.3.1 # via aiohttp # via yarl -pydantic==2.10.3 +pydantic==2.11.9 # via increase -pydantic-core==2.27.1 +pydantic-core==2.33.2 # via pydantic pygments==2.18.0 # via rich @@ -126,6 +126,9 @@ typing-extensions==4.12.2 # via pydantic # via pydantic-core # via pyright + # via typing-inspection +typing-inspection==0.4.1 + # via pydantic virtualenv==20.24.5 # via nox yarl==1.20.0 diff --git a/requirements.lock b/requirements.lock index c3a472639..3a21efa98 100644 --- a/requirements.lock +++ b/requirements.lock @@ -55,9 +55,9 @@ multidict==6.4.4 propcache==0.3.1 # via aiohttp # via yarl -pydantic==2.10.3 +pydantic==2.11.9 # via increase -pydantic-core==2.27.1 +pydantic-core==2.33.2 # via pydantic sniffio==1.3.0 # via anyio @@ -68,5 +68,8 @@ typing-extensions==4.12.2 # via multidict # via pydantic # via pydantic-core + # via typing-inspection +typing-inspection==0.4.1 + # via pydantic yarl==1.20.0 # via aiohttp diff --git a/src/increase/_models.py b/src/increase/_models.py index 3a6017ef2..6a3cd1d26 100644 --- a/src/increase/_models.py +++ b/src/increase/_models.py @@ -256,7 +256,7 @@ def model_dump( mode: Literal["json", "python"] | str = "python", include: IncEx | None = None, exclude: IncEx | None = None, - by_alias: bool = False, + by_alias: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, @@ -264,6 +264,7 @@ def model_dump( warnings: bool | Literal["none", "warn", "error"] = True, context: dict[str, Any] | None = None, serialize_as_any: bool = False, + fallback: Callable[[Any], Any] | None = None, ) -> dict[str, Any]: """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump @@ -295,10 +296,12 @@ def model_dump( raise ValueError("context is only supported in Pydantic v2") if serialize_as_any != False: raise ValueError("serialize_as_any is only supported in Pydantic v2") + if fallback is not None: + raise ValueError("fallback is only supported in Pydantic v2") dumped = super().dict( # pyright: ignore[reportDeprecated] include=include, exclude=exclude, - by_alias=by_alias, + by_alias=by_alias if by_alias is not None else False, exclude_unset=exclude_unset, exclude_defaults=exclude_defaults, exclude_none=exclude_none, @@ -313,13 +316,14 @@ def model_dump_json( indent: int | None = None, include: IncEx | None = None, exclude: IncEx | None = None, - by_alias: bool = False, + by_alias: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal["none", "warn", "error"] = True, context: dict[str, Any] | None = None, + fallback: Callable[[Any], Any] | None = None, serialize_as_any: bool = False, ) -> str: """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump_json @@ -348,11 +352,13 @@ def model_dump_json( raise ValueError("context is only supported in Pydantic v2") if serialize_as_any != False: raise ValueError("serialize_as_any is only supported in Pydantic v2") + if fallback is not None: + raise ValueError("fallback is only supported in Pydantic v2") return super().json( # type: ignore[reportDeprecated] indent=indent, include=include, exclude=exclude, - by_alias=by_alias, + by_alias=by_alias if by_alias is not None else False, exclude_unset=exclude_unset, exclude_defaults=exclude_defaults, exclude_none=exclude_none, diff --git a/src/increase/_version.py b/src/increase/_version.py index 1881e0b00..92409c5c6 100644 --- a/src/increase/_version.py +++ b/src/increase/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "increase" -__version__ = "0.328.0" # x-release-please-version +__version__ = "0.329.0" # x-release-please-version diff --git a/src/increase/resources/event_subscriptions.py b/src/increase/resources/event_subscriptions.py index bd5ec71e5..662dde6b4 100644 --- a/src/increase/resources/event_subscriptions.py +++ b/src/increase/resources/event_subscriptions.py @@ -101,6 +101,8 @@ def create( "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", @@ -245,6 +247,10 @@ def create( created. - `inbound_check_deposit.updated` - Occurs whenever an Inbound Check Deposit is updated. + - `inbound_fednow_transfer.created` - Occurs whenever an Inbound FedNow Transfer + is created. + - `inbound_fednow_transfer.updated` - Occurs whenever an Inbound FedNow Transfer + is updated. - `inbound_mail_item.created` - Occurs whenever an Inbound Mail Item is created. - `inbound_mail_item.updated` - Occurs whenever an Inbound Mail Item is updated. - `inbound_real_time_payments_transfer.created` - Occurs whenever an Inbound @@ -590,6 +596,8 @@ async def create( "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", @@ -734,6 +742,10 @@ async def create( created. - `inbound_check_deposit.updated` - Occurs whenever an Inbound Check Deposit is updated. + - `inbound_fednow_transfer.created` - Occurs whenever an Inbound FedNow Transfer + is created. + - `inbound_fednow_transfer.updated` - Occurs whenever an Inbound FedNow Transfer + is updated. - `inbound_mail_item.created` - Occurs whenever an Inbound Mail Item is created. - `inbound_mail_item.updated` - Occurs whenever an Inbound Mail Item is updated. - `inbound_real_time_payments_transfer.created` - Occurs whenever an Inbound diff --git a/src/increase/types/declined_transaction.py b/src/increase/types/declined_transaction.py index 07d2c2539..763d18f40 100644 --- a/src/increase/types/declined_transaction.py +++ b/src/increase/types/declined_transaction.py @@ -29,6 +29,7 @@ "SourceCardDeclineVerificationCardholderAddress", "SourceCheckDecline", "SourceCheckDepositRejection", + "SourceInboundFednowTransferDecline", "SourceInboundRealTimePaymentsTransferDecline", "SourceWireDecline", ] @@ -871,6 +872,30 @@ class SourceCheckDepositRejection(BaseModel): """ +class SourceInboundFednowTransferDecline(BaseModel): + reason: Literal[ + "account_number_canceled", + "account_number_disabled", + "account_restricted", + "group_locked", + "entity_not_active", + "fednow_not_enabled", + ] + """Why the transfer was declined. + + - `account_number_canceled` - The account number is canceled. + - `account_number_disabled` - The account number is disabled. + - `account_restricted` - Your account is restricted. + - `group_locked` - Your account is inactive. + - `entity_not_active` - The account's entity is not active. + - `fednow_not_enabled` - Your account is not enabled to receive FedNow + transfers. + """ + + transfer_id: str + """The identifier of the FedNow Transfer that led to this declined transaction.""" + + class SourceInboundRealTimePaymentsTransferDecline(BaseModel): amount: int """The declined amount in the minor unit of the destination account currency. @@ -977,6 +1002,7 @@ class Source(BaseModel): "card_decline", "check_decline", "inbound_real_time_payments_transfer_decline", + "inbound_fednow_transfer_decline", "wire_decline", "check_deposit_rejection", "other", @@ -994,6 +1020,8 @@ class Source(BaseModel): - `inbound_real_time_payments_transfer_decline` - Inbound Real-Time Payments Transfer Decline: details will be under the `inbound_real_time_payments_transfer_decline` object. + - `inbound_fednow_transfer_decline` - Inbound FedNow Transfer Decline: details + will be under the `inbound_fednow_transfer_decline` object. - `wire_decline` - Wire Decline: details will be under the `wire_decline` object. - `check_deposit_rejection` - Check Deposit Rejection: details will be under the @@ -1016,6 +1044,13 @@ class Source(BaseModel): equal to `check_deposit_rejection`. """ + inbound_fednow_transfer_decline: Optional[SourceInboundFednowTransferDecline] = None + """An Inbound FedNow Transfer Decline object. + + This field will be present in the JSON response if and only if `category` is + equal to `inbound_fednow_transfer_decline`. + """ + inbound_real_time_payments_transfer_decline: Optional[SourceInboundRealTimePaymentsTransferDecline] = None """An Inbound Real-Time Payments Transfer Decline object. diff --git a/src/increase/types/declined_transaction_list_params.py b/src/increase/types/declined_transaction_list_params.py index 0a4ca27b8..49183efb2 100644 --- a/src/increase/types/declined_transaction_list_params.py +++ b/src/increase/types/declined_transaction_list_params.py @@ -41,6 +41,7 @@ class DeclinedTransactionListParams(TypedDict, total=False): "card_decline", "check_decline", "inbound_real_time_payments_transfer_decline", + "inbound_fednow_transfer_decline", "wire_decline", "check_deposit_rejection", "other", diff --git a/src/increase/types/event.py b/src/increase/types/event.py index edd012456..d51f684c0 100644 --- a/src/increase/types/event.py +++ b/src/increase/types/event.py @@ -70,6 +70,8 @@ class Event(BaseModel): "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", @@ -197,6 +199,10 @@ class Event(BaseModel): created. - `inbound_check_deposit.updated` - Occurs whenever an Inbound Check Deposit is updated. + - `inbound_fednow_transfer.created` - Occurs whenever an Inbound FedNow Transfer + is created. + - `inbound_fednow_transfer.updated` - Occurs whenever an Inbound FedNow Transfer + is updated. - `inbound_mail_item.created` - Occurs whenever an Inbound Mail Item is created. - `inbound_mail_item.updated` - Occurs whenever an Inbound Mail Item is updated. - `inbound_real_time_payments_transfer.created` - Occurs whenever an Inbound diff --git a/src/increase/types/event_list_params.py b/src/increase/types/event_list_params.py index 5a967682b..a54765ad9 100644 --- a/src/increase/types/event_list_params.py +++ b/src/increase/types/event_list_params.py @@ -85,6 +85,8 @@ class EventListParams(TypedDict, total=False): "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", diff --git a/src/increase/types/event_subscription.py b/src/increase/types/event_subscription.py index d2532f8bc..8cd69645f 100644 --- a/src/increase/types/event_subscription.py +++ b/src/increase/types/event_subscription.py @@ -83,6 +83,8 @@ class EventSubscription(BaseModel): "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", @@ -210,6 +212,10 @@ class EventSubscription(BaseModel): created. - `inbound_check_deposit.updated` - Occurs whenever an Inbound Check Deposit is updated. + - `inbound_fednow_transfer.created` - Occurs whenever an Inbound FedNow Transfer + is created. + - `inbound_fednow_transfer.updated` - Occurs whenever an Inbound FedNow Transfer + is updated. - `inbound_mail_item.created` - Occurs whenever an Inbound Mail Item is created. - `inbound_mail_item.updated` - Occurs whenever an Inbound Mail Item is updated. - `inbound_real_time_payments_transfer.created` - Occurs whenever an Inbound diff --git a/src/increase/types/event_subscription_create_params.py b/src/increase/types/event_subscription_create_params.py index fb938f8b4..b72f51119 100644 --- a/src/increase/types/event_subscription_create_params.py +++ b/src/increase/types/event_subscription_create_params.py @@ -69,6 +69,8 @@ class EventSubscriptionCreateParams(TypedDict, total=False): "inbound_ach_transfer_return.updated", "inbound_check_deposit.created", "inbound_check_deposit.updated", + "inbound_fednow_transfer.created", + "inbound_fednow_transfer.updated", "inbound_mail_item.created", "inbound_mail_item.updated", "inbound_real_time_payments_transfer.created", @@ -195,6 +197,10 @@ class EventSubscriptionCreateParams(TypedDict, total=False): created. - `inbound_check_deposit.updated` - Occurs whenever an Inbound Check Deposit is updated. + - `inbound_fednow_transfer.created` - Occurs whenever an Inbound FedNow Transfer + is created. + - `inbound_fednow_transfer.updated` - Occurs whenever an Inbound FedNow Transfer + is updated. - `inbound_mail_item.created` - Occurs whenever an Inbound Mail Item is created. - `inbound_mail_item.updated` - Occurs whenever an Inbound Mail Item is updated. - `inbound_real_time_payments_transfer.created` - Occurs whenever an Inbound diff --git a/src/increase/types/transaction.py b/src/increase/types/transaction.py index a684422d0..d3f057a40 100644 --- a/src/increase/types/transaction.py +++ b/src/increase/types/transaction.py @@ -55,6 +55,7 @@ "SourceInboundACHTransferReturnIntention", "SourceInboundCheckAdjustment", "SourceInboundCheckDepositReturnIntention", + "SourceInboundFednowTransferConfirmation", "SourceInboundRealTimePaymentsTransferConfirmation", "SourceInboundWireReversal", "SourceInboundWireTransfer", @@ -2005,6 +2006,11 @@ class SourceInboundCheckDepositReturnIntention(BaseModel): """The identifier of the Check Transfer object that was deposited.""" +class SourceInboundFednowTransferConfirmation(BaseModel): + transfer_id: str + """The identifier of the FedNow Transfer that led to this Transaction.""" + + class SourceInboundRealTimePaymentsTransferConfirmation(BaseModel): amount: int """The amount in the minor unit of the transfer's currency. @@ -2447,6 +2453,7 @@ class Source(BaseModel): "inbound_ach_transfer_return_intention", "inbound_check_deposit_return_intention", "inbound_check_adjustment", + "inbound_fednow_transfer_confirmation", "inbound_real_time_payments_transfer_confirmation", "inbound_wire_reversal", "inbound_wire_transfer", @@ -2507,6 +2514,8 @@ class Source(BaseModel): object. - `inbound_check_adjustment` - Inbound Check Adjustment: details will be under the `inbound_check_adjustment` object. + - `inbound_fednow_transfer_confirmation` - Inbound FedNow Transfer Confirmation: + details will be under the `inbound_fednow_transfer_confirmation` object. - `inbound_real_time_payments_transfer_confirmation` - Inbound Real-Time Payments Transfer Confirmation: details will be under the `inbound_real_time_payments_transfer_confirmation` object. @@ -2617,6 +2626,15 @@ class Source(BaseModel): requests that it be returned. """ + inbound_fednow_transfer_confirmation: Optional[SourceInboundFednowTransferConfirmation] = None + """An Inbound FedNow Transfer Confirmation object. + + This field will be present in the JSON response if and only if `category` is + equal to `inbound_fednow_transfer_confirmation`. An Inbound FedNow Transfer + Confirmation is created when a FedNow transfer is initiated at another bank and + received by Increase. + """ + inbound_real_time_payments_transfer_confirmation: Optional[SourceInboundRealTimePaymentsTransferConfirmation] = None """An Inbound Real-Time Payments Transfer Confirmation object. diff --git a/src/increase/types/transaction_list_params.py b/src/increase/types/transaction_list_params.py index bc396b47b..7339df2bc 100644 --- a/src/increase/types/transaction_list_params.py +++ b/src/increase/types/transaction_list_params.py @@ -60,6 +60,7 @@ class TransactionListParams(TypedDict, total=False): "inbound_ach_transfer_return_intention", "inbound_check_deposit_return_intention", "inbound_check_adjustment", + "inbound_fednow_transfer_confirmation", "inbound_real_time_payments_transfer_confirmation", "inbound_wire_reversal", "inbound_wire_transfer",