From 68e24999b994fabdc10686d3aba3c45cbb198030 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 15:17:51 +0000 Subject: [PATCH 1/3] feat(api): api update --- .stats.yml | 4 ++-- src/increase/resources/exports.py | 16 +++++++++++++ src/increase/types/export.py | 3 +++ src/increase/types/export_create_params.py | 28 +++++++++++++++++++++- src/increase/types/export_list_params.py | 1 + tests/api_resources/test_exports.py | 10 +++++++- 6 files changed, 58 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0b576c5e5..5a572e980 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 215 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-289025fcb79a47841395734231b11fd75ad3d80dec533e0eb4533e6afaf82cdf.yml -openapi_spec_hash: 511ad2e7d8c798641f073775ccdab523 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-07fdb9f8710b3220dfcd37252b9d7acd4c278b9e74647a2203c3a8f120db9ad5.yml +openapi_spec_hash: 0bd908255f95090693ed26cfbbd123ed config_hash: 0b0a2503208283b283fc5bc6df6a07a5 diff --git a/src/increase/resources/exports.py b/src/increase/resources/exports.py index c4145b4c4..e81c74caf 100644 --- a/src/increase/resources/exports.py +++ b/src/increase/resources/exports.py @@ -49,12 +49,14 @@ def create( *, category: Literal[ "account_statement_ofx", + "account_statement_bai2", "transaction_csv", "balance_csv", "bookkeeping_account_balance_csv", "entity_csv", "vendor_csv", ], + account_statement_bai2: export_create_params.AccountStatementBai2 | NotGiven = NOT_GIVEN, account_statement_ofx: export_create_params.AccountStatementOfx | NotGiven = NOT_GIVEN, balance_csv: export_create_params.BalanceCsv | NotGiven = NOT_GIVEN, bookkeeping_account_balance_csv: export_create_params.BookkeepingAccountBalanceCsv | NotGiven = NOT_GIVEN, @@ -77,6 +79,8 @@ def create( - `account_statement_ofx` - Export an Open Financial Exchange (OFX) file of transactions and balances for a given time range and Account. + - `account_statement_bai2` - Export a BAI2 file of transactions and balances for + a given date and optional Account. - `transaction_csv` - Export a CSV of all transactions for a given time range. - `balance_csv` - Export a CSV of account balances for the dates in a given range. @@ -86,6 +90,9 @@ def create( - `vendor_csv` - Export a CSV of vendors added to the third-party risk management dashboard. + account_statement_bai2: Options for the created export. Required if `category` is equal to + `account_statement_bai2`. + account_statement_ofx: Options for the created export. Required if `category` is equal to `account_statement_ofx`. @@ -117,6 +124,7 @@ def create( body=maybe_transform( { "category": category, + "account_statement_bai2": account_statement_bai2, "account_statement_ofx": account_statement_ofx, "balance_csv": balance_csv, "bookkeeping_account_balance_csv": bookkeeping_account_balance_csv, @@ -258,12 +266,14 @@ async def create( *, category: Literal[ "account_statement_ofx", + "account_statement_bai2", "transaction_csv", "balance_csv", "bookkeeping_account_balance_csv", "entity_csv", "vendor_csv", ], + account_statement_bai2: export_create_params.AccountStatementBai2 | NotGiven = NOT_GIVEN, account_statement_ofx: export_create_params.AccountStatementOfx | NotGiven = NOT_GIVEN, balance_csv: export_create_params.BalanceCsv | NotGiven = NOT_GIVEN, bookkeeping_account_balance_csv: export_create_params.BookkeepingAccountBalanceCsv | NotGiven = NOT_GIVEN, @@ -286,6 +296,8 @@ async def create( - `account_statement_ofx` - Export an Open Financial Exchange (OFX) file of transactions and balances for a given time range and Account. + - `account_statement_bai2` - Export a BAI2 file of transactions and balances for + a given date and optional Account. - `transaction_csv` - Export a CSV of all transactions for a given time range. - `balance_csv` - Export a CSV of account balances for the dates in a given range. @@ -295,6 +307,9 @@ async def create( - `vendor_csv` - Export a CSV of vendors added to the third-party risk management dashboard. + account_statement_bai2: Options for the created export. Required if `category` is equal to + `account_statement_bai2`. + account_statement_ofx: Options for the created export. Required if `category` is equal to `account_statement_ofx`. @@ -326,6 +341,7 @@ async def create( body=await async_maybe_transform( { "category": category, + "account_statement_bai2": account_statement_bai2, "account_statement_ofx": account_statement_ofx, "balance_csv": balance_csv, "bookkeeping_account_balance_csv": bookkeeping_account_balance_csv, diff --git a/src/increase/types/export.py b/src/increase/types/export.py index 5eaf69404..350be3956 100644 --- a/src/increase/types/export.py +++ b/src/increase/types/export.py @@ -15,6 +15,7 @@ class Export(BaseModel): category: Literal[ "account_statement_ofx", + "account_statement_bai2", "transaction_csv", "balance_csv", "bookkeeping_account_balance_csv", @@ -29,6 +30,8 @@ class Export(BaseModel): - `account_statement_ofx` - Export an Open Financial Exchange (OFX) file of transactions and balances for a given time range and Account. + - `account_statement_bai2` - Export a BAI2 file of transactions and balances for + a given date and optional Account. - `transaction_csv` - Export a CSV of all transactions for a given time range. - `balance_csv` - Export a CSV of account balances for the dates in a given range. diff --git a/src/increase/types/export_create_params.py b/src/increase/types/export_create_params.py index 2e0d1312e..175d3a4fa 100644 --- a/src/increase/types/export_create_params.py +++ b/src/increase/types/export_create_params.py @@ -3,13 +3,14 @@ from __future__ import annotations from typing import List, Union -from datetime import datetime +from datetime import date, datetime from typing_extensions import Literal, Required, Annotated, TypedDict from .._utils import PropertyInfo __all__ = [ "ExportCreateParams", + "AccountStatementBai2", "AccountStatementOfx", "AccountStatementOfxCreatedAt", "BalanceCsv", @@ -27,6 +28,7 @@ class ExportCreateParams(TypedDict, total=False): category: Required[ Literal[ "account_statement_ofx", + "account_statement_bai2", "transaction_csv", "balance_csv", "bookkeeping_account_balance_csv", @@ -38,6 +40,8 @@ class ExportCreateParams(TypedDict, total=False): - `account_statement_ofx` - Export an Open Financial Exchange (OFX) file of transactions and balances for a given time range and Account. + - `account_statement_bai2` - Export a BAI2 file of transactions and balances for + a given date and optional Account. - `transaction_csv` - Export a CSV of all transactions for a given time range. - `balance_csv` - Export a CSV of account balances for the dates in a given range. @@ -48,6 +52,12 @@ class ExportCreateParams(TypedDict, total=False): management dashboard. """ + account_statement_bai2: AccountStatementBai2 + """Options for the created export. + + Required if `category` is equal to `account_statement_bai2`. + """ + account_statement_ofx: AccountStatementOfx """Options for the created export. @@ -85,6 +95,22 @@ class ExportCreateParams(TypedDict, total=False): """ +class AccountStatementBai2(TypedDict, total=False): + account_id: str + """The Account to create a BAI2 report for. + + If not provided, all open accounts will be included. + """ + + effective_date: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + """The date to create a BAI2 report for. + + If not provided, the current date will be used. The timezone is UTC. If the + current date is used, the report will include intraday balances, otherwise it + will include end-of-day balances for the provided date. + """ + + class AccountStatementOfxCreatedAt(TypedDict, total=False): after: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] """ diff --git a/src/increase/types/export_list_params.py b/src/increase/types/export_list_params.py index efedbe7d9..237a7ceaa 100644 --- a/src/increase/types/export_list_params.py +++ b/src/increase/types/export_list_params.py @@ -42,6 +42,7 @@ class ExportListParams(TypedDict, total=False): "in": List[ Literal[ "account_statement_ofx", + "account_statement_bai2", "transaction_csv", "balance_csv", "bookkeeping_account_balance_csv", diff --git a/tests/api_resources/test_exports.py b/tests/api_resources/test_exports.py index 005b47caf..33b670625 100644 --- a/tests/api_resources/test_exports.py +++ b/tests/api_resources/test_exports.py @@ -10,7 +10,7 @@ from increase import Increase, AsyncIncrease from tests.utils import assert_matches_type from increase.types import Export -from increase._utils import parse_datetime +from increase._utils import parse_date, parse_datetime from increase.pagination import SyncPage, AsyncPage base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -30,6 +30,10 @@ def test_method_create(self, client: Increase) -> None: def test_method_create_with_all_params(self, client: Increase) -> None: export = client.exports.create( category="transaction_csv", + account_statement_bai2={ + "account_id": "account_id", + "effective_date": parse_date("2019-12-27"), + }, account_statement_ofx={ "account_id": "account_id", "created_at": { @@ -194,6 +198,10 @@ async def test_method_create(self, async_client: AsyncIncrease) -> None: async def test_method_create_with_all_params(self, async_client: AsyncIncrease) -> None: export = await async_client.exports.create( category="transaction_csv", + account_statement_bai2={ + "account_id": "account_id", + "effective_date": parse_date("2019-12-27"), + }, account_statement_ofx={ "account_id": "account_id", "created_at": { From 0b1579861d88c7d87da4b7ad3ac48729d950cbbb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 16:20:46 +0000 Subject: [PATCH 2/3] feat(api): api update --- .stats.yml | 4 +-- .../resources/ach_prenotifications.py | 32 +++++++++---------- src/increase/types/ach_prenotification.py | 28 ++++++++++++++++ .../ach_prenotification_create_params.py | 16 +++++----- src/increase/types/card_validation.py | 3 ++ src/increase/types/check_transfer.py | 9 ++++++ .../types/intrafi_account_enrollment.py | 3 ++ 7 files changed, 69 insertions(+), 26 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5a572e980..be347cd13 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 215 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-07fdb9f8710b3220dfcd37252b9d7acd4c278b9e74647a2203c3a8f120db9ad5.yml -openapi_spec_hash: 0bd908255f95090693ed26cfbbd123ed +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-ce8ac7ef645ad6089e9730ae2b44492a6a958a2abcc8bb50130c5ebd7ba1a390.yml +openapi_spec_hash: 90a27266ac1eeab3464f6825d8fd8650 config_hash: 0b0a2503208283b283fc5bc6df6a07a5 diff --git a/src/increase/resources/ach_prenotifications.py b/src/increase/resources/ach_prenotifications.py index f0dca38bf..393e831fe 100644 --- a/src/increase/resources/ach_prenotifications.py +++ b/src/increase/resources/ach_prenotifications.py @@ -80,7 +80,7 @@ def create( Create an ACH Prenotification Args: - account_id: The Increase identifier for the account that will send the transfer. + account_id: The Increase identifier for the account that will send the ACH Prenotification. account_number: The account number for the destination account. @@ -89,11 +89,11 @@ def create( addendum: Additional information that will be sent to the recipient. - company_descriptive_date: The description of the date of the transfer. + company_descriptive_date: The description of the date of the ACH Prenotification. - company_discretionary_data: The data you choose to associate with the transfer. + company_discretionary_data: The data you choose to associate with the ACH Prenotification. - company_entry_description: The description of the transfer you wish to be shown to the recipient. + company_entry_description: The description you wish to be shown to the recipient. company_name: The name by which the recipient knows you. @@ -102,13 +102,13 @@ def create( - `credit` - The Prenotification is for an anticipated credit. - `debit` - The Prenotification is for an anticipated debit. - effective_date: The transfer effective date in + effective_date: The ACH Prenotification effective date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. - individual_id: Your identifier for the transfer recipient. + individual_id: Your identifier for the recipient. - individual_name: The name of the transfer recipient. This value is information and not verified - by the recipient's bank. + individual_name: The name of therecipient. This value is informational and not verified by the + recipient's bank. standard_entry_class_code: The Standard Entry Class (SEC) code to use for the ACH Prenotification. @@ -306,7 +306,7 @@ async def create( Create an ACH Prenotification Args: - account_id: The Increase identifier for the account that will send the transfer. + account_id: The Increase identifier for the account that will send the ACH Prenotification. account_number: The account number for the destination account. @@ -315,11 +315,11 @@ async def create( addendum: Additional information that will be sent to the recipient. - company_descriptive_date: The description of the date of the transfer. + company_descriptive_date: The description of the date of the ACH Prenotification. - company_discretionary_data: The data you choose to associate with the transfer. + company_discretionary_data: The data you choose to associate with the ACH Prenotification. - company_entry_description: The description of the transfer you wish to be shown to the recipient. + company_entry_description: The description you wish to be shown to the recipient. company_name: The name by which the recipient knows you. @@ -328,13 +328,13 @@ async def create( - `credit` - The Prenotification is for an anticipated credit. - `debit` - The Prenotification is for an anticipated debit. - effective_date: The transfer effective date in + effective_date: The ACH Prenotification effective date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. - individual_id: Your identifier for the transfer recipient. + individual_id: Your identifier for the recipient. - individual_name: The name of the transfer recipient. This value is information and not verified - by the recipient's bank. + individual_name: The name of therecipient. This value is informational and not verified by the + recipient's bank. standard_entry_class_code: The Standard Entry Class (SEC) code to use for the ACH Prenotification. diff --git a/src/increase/types/ach_prenotification.py b/src/increase/types/ach_prenotification.py index 43ef00cf8..02fdeec9b 100644 --- a/src/increase/types/ach_prenotification.py +++ b/src/increase/types/ach_prenotification.py @@ -322,6 +322,9 @@ class ACHPrenotification(BaseModel): id: str """The ACH Prenotification's identifier.""" + account_id: Optional[str] = None + """The account that sent the ACH Prenotification.""" + account_number: str """The destination account number.""" @@ -366,6 +369,15 @@ class ACHPrenotification(BaseModel): [idempotency](https://increase.com/documentation/idempotency-keys). """ + individual_id: Optional[str] = None + """Your identifier for the recipient.""" + + individual_name: Optional[str] = None + """The name of the recipient. + + This value is informational and not verified by the recipient's bank. + """ + notifications_of_change: List[NotificationsOfChange] """ If the receiving bank notifies that future transfers should use different @@ -378,6 +390,22 @@ class ACHPrenotification(BaseModel): routing_number: str """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" + standard_entry_class_code: Optional[ + Literal[ + "corporate_credit_or_debit", + "corporate_trade_exchange", + "prearranged_payments_and_deposit", + "internet_initiated", + ] + ] = None + """The Standard Entry Class (SEC) code to use for the ACH Prenotification. + + - `corporate_credit_or_debit` - Corporate Credit and Debit (CCD). + - `corporate_trade_exchange` - Corporate Trade Exchange (CTX). + - `prearranged_payments_and_deposit` - Prearranged Payments and Deposits (PPD). + - `internet_initiated` - Internet Initiated (WEB). + """ + status: Literal["pending_submitting", "requires_attention", "returned", "submitted"] """The lifecycle status of the ACH Prenotification. diff --git a/src/increase/types/ach_prenotification_create_params.py b/src/increase/types/ach_prenotification_create_params.py index 0ed052895..d3b02fd90 100644 --- a/src/increase/types/ach_prenotification_create_params.py +++ b/src/increase/types/ach_prenotification_create_params.py @@ -13,7 +13,7 @@ class ACHPrenotificationCreateParams(TypedDict, total=False): account_id: Required[str] - """The Increase identifier for the account that will send the transfer.""" + """The Increase identifier for the account that will send the ACH Prenotification.""" account_number: Required[str] """The account number for the destination account.""" @@ -28,13 +28,13 @@ class ACHPrenotificationCreateParams(TypedDict, total=False): """Additional information that will be sent to the recipient.""" company_descriptive_date: str - """The description of the date of the transfer.""" + """The description of the date of the ACH Prenotification.""" company_discretionary_data: str - """The data you choose to associate with the transfer.""" + """The data you choose to associate with the ACH Prenotification.""" company_entry_description: str - """The description of the transfer you wish to be shown to the recipient.""" + """The description you wish to be shown to the recipient.""" company_name: str """The name by which the recipient knows you.""" @@ -48,17 +48,17 @@ class ACHPrenotificationCreateParams(TypedDict, total=False): effective_date: Annotated[Union[str, date], PropertyInfo(format="iso8601")] """ - The transfer effective date in + The ACH Prenotification effective date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. """ individual_id: str - """Your identifier for the transfer recipient.""" + """Your identifier for the recipient.""" individual_name: str - """The name of the transfer recipient. + """The name of therecipient. - This value is information and not verified by the recipient's bank. + This value is informational and not verified by the recipient's bank. """ standard_entry_class_code: Literal[ diff --git a/src/increase/types/card_validation.py b/src/increase/types/card_validation.py index 595ebdc4e..1fe048745 100644 --- a/src/increase/types/card_validation.py +++ b/src/increase/types/card_validation.py @@ -293,6 +293,9 @@ class CardValidation(BaseModel): account_id: str """The identifier of the Account from which to send the validation.""" + card_token_id: str + """The ID of the Card Token that was used to validate the card.""" + cardholder_first_name: Optional[str] = None """The cardholder's first name.""" diff --git a/src/increase/types/check_transfer.py b/src/increase/types/check_transfer.py index a93c151e3..8baa04e9a 100644 --- a/src/increase/types/check_transfer.py +++ b/src/increase/types/check_transfer.py @@ -316,6 +316,15 @@ class CheckTransfer(BaseModel): identifier of the Inbound Check Deposit object with details of the deposit. """ + balance_check: Optional[Literal["full", "none"]] = None + """How the account's available balance should be checked. + + - `full` - The available balance of the account must be at least the amount of + the check, and a Pending Transaction will be created for the full amount. + - `none` - No balance check will performed; a zero-dollar Pending Transaction + will be created. + """ + cancellation: Optional[Cancellation] = None """ If your account requires approvals for transfers and the transfer was not diff --git a/src/increase/types/intrafi_account_enrollment.py b/src/increase/types/intrafi_account_enrollment.py index b04e39136..89444fc6f 100644 --- a/src/increase/types/intrafi_account_enrollment.py +++ b/src/increase/types/intrafi_account_enrollment.py @@ -22,6 +22,9 @@ class IntrafiAccountEnrollment(BaseModel): the enrollment was created. """ + email_address: Optional[str] = None + """The contact email for the account owner, to be shared with IntraFi.""" + idempotency_key: Optional[str] = None """The idempotency key you chose for this object. From 3cbe8a0c5e073e6b56f5e936d9eb238fead44da0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 16:21:10 +0000 Subject: [PATCH 3/3] release: 0.294.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 9 +++++++++ pyproject.toml | 2 +- src/increase/_version.py | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index db7ac1523..ec9c98a35 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.293.0" + ".": "0.294.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e02727349..1b3a997bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.294.0 (2025-08-20) + +Full Changelog: [v0.293.0...v0.294.0](https://github.com/Increase/increase-python/compare/v0.293.0...v0.294.0) + +### Features + +* **api:** api update ([0b15798](https://github.com/Increase/increase-python/commit/0b1579861d88c7d87da4b7ad3ac48729d950cbbb)) +* **api:** api update ([68e2499](https://github.com/Increase/increase-python/commit/68e24999b994fabdc10686d3aba3c45cbb198030)) + ## 0.293.0 (2025-08-20) Full Changelog: [v0.292.0...v0.293.0](https://github.com/Increase/increase-python/compare/v0.292.0...v0.293.0) diff --git a/pyproject.toml b/pyproject.toml index 25b8df650..6525dcfe0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "increase" -version = "0.293.0" +version = "0.294.0" description = "The official Python library for the increase API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/increase/_version.py b/src/increase/_version.py index bd2e4e701..ef8d17823 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.293.0" # x-release-please-version +__version__ = "0.294.0" # x-release-please-version