From 9409881165df777f9ad62edb2765632c3d710f12 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 30 Aug 2023 18:08:53 -0400 Subject: [PATCH 01/15] feat(api): add bank_of_first_deposit_routing_number and transfer_id properties (#103) - Add `bank_of_first_deposit_routing_number` property to `check_transfer_deposit` and `inbound_check` - Add `transfer_id` property to `inbound_ach_transfer` --- src/increase/types/check_transfer.py | 7 +++++++ .../simulations/ach_transfer_simulation.py | 17 +++++++++++++++++ ..._time_payments_transfer_simulation_result.py | 17 +++++++++++++++++ .../interest_payment_simulation_result.py | 17 +++++++++++++++++ .../simulations/wire_transfer_simulation.py | 17 +++++++++++++++++ src/increase/types/transaction.py | 17 +++++++++++++++++ 6 files changed, 92 insertions(+) diff --git a/src/increase/types/check_transfer.py b/src/increase/types/check_transfer.py index dd543594d..c910e7c35 100644 --- a/src/increase/types/check_transfer.py +++ b/src/increase/types/check_transfer.py @@ -55,6 +55,13 @@ class Deposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" diff --git a/src/increase/types/simulations/ach_transfer_simulation.py b/src/increase/types/simulations/ach_transfer_simulation.py index 1b2ffffa7..93b8d3e4f 100644 --- a/src/increase/types/simulations/ach_transfer_simulation.py +++ b/src/increase/types/simulations/ach_transfer_simulation.py @@ -2125,6 +2125,13 @@ class TransactionSourceCheckTransferDeposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" @@ -2253,6 +2260,9 @@ class TransactionSourceInboundACHTransfer(BaseModel): trace_number: str + transfer_id: str + """The inbound ach transfer's identifier.""" + class TransactionSourceInboundCheck(BaseModel): amount: int @@ -2261,6 +2271,13 @@ class TransactionSourceInboundCheck(BaseModel): For dollars, for example, this is cents. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + check_front_image_file_id: Optional[str] check_number: Optional[str] diff --git a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py index a451c71f7..327261373 100644 --- a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py +++ b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py @@ -2125,6 +2125,13 @@ class TransactionSourceCheckTransferDeposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" @@ -2253,6 +2260,9 @@ class TransactionSourceInboundACHTransfer(BaseModel): trace_number: str + transfer_id: str + """The inbound ach transfer's identifier.""" + class TransactionSourceInboundCheck(BaseModel): amount: int @@ -2261,6 +2271,13 @@ class TransactionSourceInboundCheck(BaseModel): For dollars, for example, this is cents. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + check_front_image_file_id: Optional[str] check_number: Optional[str] diff --git a/src/increase/types/simulations/interest_payment_simulation_result.py b/src/increase/types/simulations/interest_payment_simulation_result.py index d92b56848..8044e5999 100644 --- a/src/increase/types/simulations/interest_payment_simulation_result.py +++ b/src/increase/types/simulations/interest_payment_simulation_result.py @@ -1461,6 +1461,13 @@ class TransactionSourceCheckTransferDeposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" @@ -1589,6 +1596,9 @@ class TransactionSourceInboundACHTransfer(BaseModel): trace_number: str + transfer_id: str + """The inbound ach transfer's identifier.""" + class TransactionSourceInboundCheck(BaseModel): amount: int @@ -1597,6 +1607,13 @@ class TransactionSourceInboundCheck(BaseModel): For dollars, for example, this is cents. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + check_front_image_file_id: Optional[str] check_number: Optional[str] diff --git a/src/increase/types/simulations/wire_transfer_simulation.py b/src/increase/types/simulations/wire_transfer_simulation.py index 56f0f2042..177ae8874 100644 --- a/src/increase/types/simulations/wire_transfer_simulation.py +++ b/src/increase/types/simulations/wire_transfer_simulation.py @@ -1461,6 +1461,13 @@ class TransactionSourceCheckTransferDeposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" @@ -1589,6 +1596,9 @@ class TransactionSourceInboundACHTransfer(BaseModel): trace_number: str + transfer_id: str + """The inbound ach transfer's identifier.""" + class TransactionSourceInboundCheck(BaseModel): amount: int @@ -1597,6 +1607,13 @@ class TransactionSourceInboundCheck(BaseModel): For dollars, for example, this is cents. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + check_front_image_file_id: Optional[str] check_number: Optional[str] diff --git a/src/increase/types/transaction.py b/src/increase/types/transaction.py index 79d17b3f9..a92484ab0 100644 --- a/src/increase/types/transaction.py +++ b/src/increase/types/transaction.py @@ -1460,6 +1460,13 @@ class SourceCheckTransferDeposit(BaseModel): deposited check. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + deposited_at: datetime """When the check was deposited.""" @@ -1588,6 +1595,9 @@ class SourceInboundACHTransfer(BaseModel): trace_number: str + transfer_id: str + """The inbound ach transfer's identifier.""" + class SourceInboundCheck(BaseModel): amount: int @@ -1596,6 +1606,13 @@ class SourceInboundCheck(BaseModel): For dollars, for example, this is cents. """ + bank_of_first_deposit_routing_number: Optional[str] + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + bank depositing this check. In some rare cases, this is not transmitted via + Check21 and the value will be null. + """ + check_front_image_file_id: Optional[str] check_number: Optional[str] From 1ab67a51b1710075bd940f69ebd6a844bb92d676 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Thu, 31 Aug 2023 04:42:25 -0400 Subject: [PATCH 02/15] chore(internal): add `pydantic.generics` import for compatibility (#105) --- src/increase/_compat.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/increase/_compat.py b/src/increase/_compat.py index 7b5f798f1..f8e73e40a 100644 --- a/src/increase/_compat.py +++ b/src/increase/_compat.py @@ -147,6 +147,7 @@ class GenericModel(pydantic.BaseModel): ... else: + import pydantic.generics class GenericModel(pydantic.generics.GenericModel, pydantic.BaseModel): ... From 2ecc3dadef8843074f791e6e6965a681c67bbe28 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Thu, 31 Aug 2023 06:06:14 -0400 Subject: [PATCH 03/15] ci: remove GitHub workflow open-release-prs.yml (#106) --- .github/workflows/open-release-prs.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .github/workflows/open-release-prs.yml diff --git a/.github/workflows/open-release-prs.yml b/.github/workflows/open-release-prs.yml deleted file mode 100644 index 7bebdac68..000000000 --- a/.github/workflows/open-release-prs.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Open release PRs -on: - push: - branches: - - next - -jobs: - release: - name: release - if: github.ref == 'refs/heads/next' && github.repository == 'increase/increase-python' - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - uses: stainless-api/trigger-release-please@v1 - id: release - with: - repo: ${{ github.event.repository.full_name }} - stainless-api-key: ${{ secrets.STAINLESS_API_KEY }} - branch-with-changes: next From 72ef120f8297770a71c2a87663cf5108316d0f9e Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Fri, 1 Sep 2023 05:58:17 -0400 Subject: [PATCH 04/15] docs(readme): reference pydantic helpers (#107) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cd38d2f73..2d656dda1 100644 --- a/README.md +++ b/README.md @@ -66,9 +66,9 @@ Functionality between the synchronous and asynchronous clients is otherwise iden ## Using Types -Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict), while responses are [Pydantic](https://pydantic-docs.helpmanual.io/) models. This helps provide autocomplete and documentation within your editor. +Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev), which provide helper methods for things like serializing back into json ([v1](https://docs.pydantic.dev/1.10/usage/models/), [v2](https://docs.pydantic.dev/latest/usage/serialization/)). To get a dictionary, you can call `dict(model)`. -If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `"basic"`. +This helps provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `"basic"`. ## Pagination From 210a1b124e56dbc586600feff12ce4de4904e4d7 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Fri, 1 Sep 2023 12:02:05 -0400 Subject: [PATCH 05/15] chore(internal): minor formatting changes (#108) --- src/increase/_exceptions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/increase/_exceptions.py b/src/increase/_exceptions.py index ed25e5391..066ec33b9 100644 --- a/src/increase/_exceptions.py +++ b/src/increase/_exceptions.py @@ -67,10 +67,10 @@ def __init__(self, message: str, *, body: object, request: httpx.Request, respon title = cast(Any, data.get("title")) super().__init__(title or message, request=request, response=response, body=body) + self.title = title self.detail = cast(Any, data.get("detail")) self.errors = cast(Any, data.get("errors")) self.status = cast(Any, data.get("status")) - self.title = cast(Any, data.get("title")) self.type = cast(Any, data.get("type")) From feea47b868d7aec4defe0877bb57de1b0540db83 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Tue, 5 Sep 2023 14:58:01 -0400 Subject: [PATCH 06/15] feat(api): add Update Address and Create Notification Change endpoints (#109) --- .stats.yml | 2 +- api.md | 3 + .../resources/entities/beneficial_owners.py | 111 +++++++++ src/increase/resources/entities/entities.py | 95 +++++++- src/increase/resources/external_accounts.py | 8 + .../resources/inbound_ach_transfers.py | 109 +++++++++ .../resources/simulations/ach_transfers.py | 8 +- src/increase/types/__init__.py | 6 + src/increase/types/ach_prenotification.py | 227 +++++++++++++++++- src/increase/types/ach_transfer.py | 22 +- src/increase/types/check_deposit.py | 3 + src/increase/types/declined_transaction.py | 42 +++- src/increase/types/digital_wallet_token.py | 3 +- src/increase/types/entities/__init__.py | 3 + .../beneficial_owner_update_address_params.py | 41 ++++ .../types/entity_update_address_params.py | 32 +++ .../types/external_account_list_params.py | 3 + src/increase/types/inbound_ach_transfer.py | 37 ++- ..._transfer_notification_of_change_params.py | 15 ++ src/increase/types/pending_transaction.py | 7 + src/increase/types/real_time_decision.py | 6 +- .../simulations/ach_transfer_return_params.py | 4 +- .../simulations/ach_transfer_simulation.py | 159 ++++++++++-- .../card_authorization_simulation.py | 49 +++- ...ime_payments_transfer_simulation_result.py | 159 ++++++++++-- .../interest_payment_simulation_result.py | 117 ++++++++- .../simulations/wire_transfer_simulation.py | 117 ++++++++- src/increase/types/transaction.py | 117 ++++++++- src/increase/types/wire_transfer.py | 17 +- .../entities/test_beneficial_owners.py | 58 +++++ tests/api_resources/test_entities.py | 54 +++++ tests/api_resources/test_external_accounts.py | 2 + .../test_inbound_ach_transfers.py | 32 +++ 33 files changed, 1556 insertions(+), 112 deletions(-) create mode 100644 src/increase/types/entities/beneficial_owner_update_address_params.py create mode 100644 src/increase/types/entity_update_address_params.py create mode 100644 src/increase/types/inbound_ach_transfer_notification_of_change_params.py diff --git a/.stats.yml b/.stats.yml index 34095f9c8..93f240e6b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1 +1 @@ -configured_endpoints: 141 +configured_endpoints: 144 diff --git a/api.md b/api.md index 2549e4479..849852abf 100644 --- a/api.md +++ b/api.md @@ -380,6 +380,7 @@ Methods: - client.entities.retrieve(entity_id) -> Entity - client.entities.list(\*\*params) -> SyncPage[Entity] - client.entities.archive(entity_id) -> Entity +- client.entities.update_address(entity_id, \*\*params) -> Entity ## BeneficialOwners @@ -387,6 +388,7 @@ Methods: - client.entities.beneficial_owners.create(\*\*params) -> Entity - client.entities.beneficial_owners.archive(\*\*params) -> Entity +- client.entities.beneficial_owners.update_address(\*\*params) -> Entity ## SupplementalDocuments @@ -414,6 +416,7 @@ Methods: - client.inbound_ach_transfers.retrieve(inbound_ach_transfer_id) -> InboundACHTransfer - client.inbound_ach_transfers.list(\*\*params) -> SyncPage[InboundACHTransfer] - client.inbound_ach_transfers.decline(inbound_ach_transfer_id) -> InboundACHTransfer +- client.inbound_ach_transfers.notification_of_change(inbound_ach_transfer_id, \*\*params) -> InboundACHTransfer - client.inbound_ach_transfers.transfer_return(inbound_ach_transfer_id, \*\*params) -> InboundACHTransfer # InboundWireDrawdownRequests diff --git a/src/increase/resources/entities/beneficial_owners.py b/src/increase/resources/entities/beneficial_owners.py index 632aa9c23..e2c923cf8 100644 --- a/src/increase/resources/entities/beneficial_owners.py +++ b/src/increase/resources/entities/beneficial_owners.py @@ -10,6 +10,7 @@ from ...types.entities import ( beneficial_owner_create_params, beneficial_owner_archive_params, + beneficial_owner_update_address_params, ) __all__ = ["BeneficialOwners", "AsyncBeneficialOwners"] @@ -118,6 +119,61 @@ def archive( cast_to=Entity, ) + def update_address( + self, + *, + address: beneficial_owner_update_address_params.Address, + beneficial_owner_id: str, + entity_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> Entity: + """ + Update the address for a beneficial owner belonging to a corporate Entity + + Args: + address: The individual's physical address. Post Office Boxes are disallowed. + + beneficial_owner_id: The identifying details of anyone controlling or owning 25% or more of the + corporation. + + entity_id: The identifier of the Entity to retrieve. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return self._post( + "/entity_beneficial_owners/address", + body=maybe_transform( + { + "address": address, + "beneficial_owner_id": beneficial_owner_id, + "entity_id": entity_id, + }, + beneficial_owner_update_address_params.BeneficialOwnerUpdateAddressParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=Entity, + ) + class AsyncBeneficialOwners(AsyncAPIResource): async def create( @@ -221,3 +277,58 @@ async def archive( ), cast_to=Entity, ) + + async def update_address( + self, + *, + address: beneficial_owner_update_address_params.Address, + beneficial_owner_id: str, + entity_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> Entity: + """ + Update the address for a beneficial owner belonging to a corporate Entity + + Args: + address: The individual's physical address. Post Office Boxes are disallowed. + + beneficial_owner_id: The identifying details of anyone controlling or owning 25% or more of the + corporation. + + entity_id: The identifier of the Entity to retrieve. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return await self._post( + "/entity_beneficial_owners/address", + body=maybe_transform( + { + "address": address, + "beneficial_owner_id": beneficial_owner_id, + "entity_id": entity_id, + }, + beneficial_owner_update_address_params.BeneficialOwnerUpdateAddressParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=Entity, + ) diff --git a/src/increase/resources/entities/entities.py b/src/increase/resources/entities/entities.py index 55b17b0fb..d414a9072 100644 --- a/src/increase/resources/entities/entities.py +++ b/src/increase/resources/entities/entities.py @@ -5,7 +5,12 @@ from typing import TYPE_CHECKING, List from typing_extensions import Literal -from ...types import Entity, entity_list_params, entity_create_params +from ...types import ( + Entity, + entity_list_params, + entity_create_params, + entity_update_address_params, +) from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven from ..._utils import maybe_transform from ..._resource import SyncAPIResource, AsyncAPIResource @@ -242,6 +247,50 @@ def archive( cast_to=Entity, ) + def update_address( + self, + entity_id: str, + *, + address: entity_update_address_params.Address, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> Entity: + """ + Update a Natural Person or Corporation's address + + Args: + entity_id: The identifier of the Entity to archive. + + address: The entity's physical address. Post Office Boxes are disallowed. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return self._post( + f"/entities/{entity_id}/address", + body=maybe_transform({"address": address}, entity_update_address_params.EntityUpdateAddressParams), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=Entity, + ) + class AsyncEntities(AsyncAPIResource): beneficial_owners: AsyncBeneficialOwners @@ -464,3 +513,47 @@ async def archive( ), cast_to=Entity, ) + + async def update_address( + self, + entity_id: str, + *, + address: entity_update_address_params.Address, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> Entity: + """ + Update a Natural Person or Corporation's address + + Args: + entity_id: The identifier of the Entity to archive. + + address: The entity's physical address. Post Office Boxes are disallowed. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return await self._post( + f"/entities/{entity_id}/address", + body=maybe_transform({"address": address}, entity_update_address_params.EntityUpdateAddressParams), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=Entity, + ) diff --git a/src/increase/resources/external_accounts.py b/src/increase/resources/external_accounts.py index b00041e13..adc4c9ff7 100644 --- a/src/increase/resources/external_accounts.py +++ b/src/increase/resources/external_accounts.py @@ -178,6 +178,7 @@ def list( *, cursor: str | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, + routing_number: str | NotGiven = NOT_GIVEN, status: external_account_list_params.Status | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -195,6 +196,8 @@ def list( limit: Limit the size of the list that is returned. The default (and maximum) is 100 objects. + routing_number: Filter External Accounts to those with the specified Routing Number. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -215,6 +218,7 @@ def list( { "cursor": cursor, "limit": limit, + "routing_number": routing_number, "status": status, }, external_account_list_params.ExternalAccountListParams, @@ -383,6 +387,7 @@ def list( *, cursor: str | NotGiven = NOT_GIVEN, limit: int | NotGiven = NOT_GIVEN, + routing_number: str | NotGiven = NOT_GIVEN, status: external_account_list_params.Status | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -400,6 +405,8 @@ def list( limit: Limit the size of the list that is returned. The default (and maximum) is 100 objects. + routing_number: Filter External Accounts to those with the specified Routing Number. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -420,6 +427,7 @@ def list( { "cursor": cursor, "limit": limit, + "routing_number": routing_number, "status": status, }, external_account_list_params.ExternalAccountListParams, diff --git a/src/increase/resources/inbound_ach_transfers.py b/src/increase/resources/inbound_ach_transfers.py index 3337d13cb..f57f3d962 100644 --- a/src/increase/resources/inbound_ach_transfers.py +++ b/src/increase/resources/inbound_ach_transfers.py @@ -8,6 +8,7 @@ InboundACHTransfer, inbound_ach_transfer_list_params, inbound_ach_transfer_transfer_return_params, + inbound_ach_transfer_notification_of_change_params, ) from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven from .._utils import maybe_transform @@ -156,6 +157,60 @@ def decline( cast_to=InboundACHTransfer, ) + def notification_of_change( + self, + inbound_ach_transfer_id: str, + *, + updated_account_number: str | NotGiven = NOT_GIVEN, + updated_routing_number: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> InboundACHTransfer: + """ + Create a notification of change for an Inbound ACH Transfer + + Args: + inbound_ach_transfer_id: The identifier of the Inbound ACH Transfer for which to create a notification of + change. + + updated_account_number: The updated account number to send in the notification of change. + + updated_routing_number: The updated routing number to send in the notification of change. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return self._post( + f"/inbound_ach_transfers/{inbound_ach_transfer_id}/notification_of_change", + body=maybe_transform( + { + "updated_account_number": updated_account_number, + "updated_routing_number": updated_routing_number, + }, + inbound_ach_transfer_notification_of_change_params.InboundACHTransferNotificationOfChangeParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=InboundACHTransfer, + ) + def transfer_return( self, inbound_ach_transfer_id: str, @@ -370,6 +425,60 @@ async def decline( cast_to=InboundACHTransfer, ) + async def notification_of_change( + self, + inbound_ach_transfer_id: str, + *, + updated_account_number: str | NotGiven = NOT_GIVEN, + updated_routing_number: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | None | NotGiven = NOT_GIVEN, + idempotency_key: str | None = None, + ) -> InboundACHTransfer: + """ + Create a notification of change for an Inbound ACH Transfer + + Args: + inbound_ach_transfer_id: The identifier of the Inbound ACH Transfer for which to create a notification of + change. + + updated_account_number: The updated account number to send in the notification of change. + + updated_routing_number: The updated routing number to send in the notification of change. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + + idempotency_key: Specify a custom idempotency key for this request + """ + return await self._post( + f"/inbound_ach_transfers/{inbound_ach_transfer_id}/notification_of_change", + body=maybe_transform( + { + "updated_account_number": updated_account_number, + "updated_routing_number": updated_routing_number, + }, + inbound_ach_transfer_notification_of_change_params.InboundACHTransferNotificationOfChangeParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=InboundACHTransfer, + ) + async def transfer_return( self, inbound_ach_transfer_id: str, diff --git a/src/increase/resources/simulations/ach_transfers.py b/src/increase/resources/simulations/ach_transfers.py index da4c027b9..3d0f2eec7 100644 --- a/src/increase/resources/simulations/ach_transfers.py +++ b/src/increase/resources/simulations/ach_transfers.py @@ -226,7 +226,7 @@ def return_( - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -313,7 +313,7 @@ def return_( bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -615,7 +615,7 @@ async def return_( - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -702,7 +702,7 @@ async def return_( bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a diff --git a/src/increase/types/__init__.py b/src/increase/types/__init__.py index 6a4d5e330..2fb878c32 100644 --- a/src/increase/types/__init__.py +++ b/src/increase/types/__init__.py @@ -104,6 +104,9 @@ from .check_transfer_create_params import ( CheckTransferCreateParams as CheckTransferCreateParams, ) +from .entity_update_address_params import ( + EntityUpdateAddressParams as EntityUpdateAddressParams, +) from .external_account_list_params import ( ExternalAccountListParams as ExternalAccountListParams, ) @@ -194,3 +197,6 @@ from .inbound_ach_transfer_transfer_return_params import ( InboundACHTransferTransferReturnParams as InboundACHTransferTransferReturnParams, ) +from .inbound_ach_transfer_notification_of_change_params import ( + InboundACHTransferNotificationOfChangeParams as InboundACHTransferNotificationOfChangeParams, +) diff --git a/src/increase/types/ach_prenotification.py b/src/increase/types/ach_prenotification.py index e20795c96..8568d1c28 100644 --- a/src/increase/types/ach_prenotification.py +++ b/src/increase/types/ach_prenotification.py @@ -22,7 +22,9 @@ class NotificationsOfChange(BaseModel): "addenda_format_error", "incorrect_standard_entry_class_code_for_outbound_international_payment", ] - """The type of change that occurred. + """ + The required type of change that is being signaled by the receiving financial + institution. - `incorrect_account_number` - The account number was incorrect. - `incorrect_routing_number` - The routing number was incorrect. @@ -43,7 +45,7 @@ class NotificationsOfChange(BaseModel): """ corrected_data: str - """The corrected data.""" + """The corrected data that should be used in future ACHs to this account.""" created_at: datetime """ @@ -59,8 +61,225 @@ class PrenotificationReturn(BaseModel): the Prenotification was returned. """ - return_reason_code: str - """Why the Prenotification was returned.""" + return_reason_code: Literal[ + "insufficient_fund", + "no_account", + "account_closed", + "invalid_account_number_structure", + "account_frozen_entry_returned_per_ofac_instruction", + "credit_entry_refused_by_receiver", + "unauthorized_debit_to_consumer_account_using_corporate_sec_code", + "corporate_customer_advised_not_authorized", + "payment_stopped", + "non_transaction_account", + "uncollected_funds", + "routing_number_check_digit_error", + "customer_advised_unauthorized_improper_ineligible_or_incomplete", + "amount_field_error", + "authorization_revoked_by_customer", + "invalid_ach_routing_number", + "file_record_edit_criteria", + "enr_invalid_individual_name", + "returned_per_odfi_request", + "limited_participation_dfi", + "incorrectly_coded_outbound_international_payment", + "account_sold_to_another_dfi", + "addenda_error", + "beneficiary_or_account_holder_deceased", + "customer_advised_not_within_authorization_terms", + "corrected_return", + "duplicate_entry", + "duplicate_return", + "enr_duplicate_enrollment", + "enr_invalid_dfi_account_number", + "enr_invalid_individual_id_number", + "enr_invalid_representative_payee_indicator", + "enr_invalid_transaction_code", + "enr_return_of_enr_entry", + "enr_routing_number_check_digit_error", + "entry_not_processed_by_gateway", + "field_error", + "foreign_receiving_dfi_unable_to_settle", + "iat_entry_coding_error", + "improper_effective_entry_date", + "improper_source_document_source_document_presented", + "invalid_company_id", + "invalid_foreign_receiving_dfi_identification", + "invalid_individual_id_number", + "item_and_rck_entry_presented_for_payment", + "item_related_to_rck_entry_is_ineligible", + "mandatory_field_error", + "misrouted_dishonored_return", + "misrouted_return", + "no_errors_found", + "non_acceptance_of_r62_dishonored_return", + "non_participant_in_iat_program", + "permissible_return_entry", + "permissible_return_entry_not_accepted", + "rdfi_non_settlement", + "rdfi_participant_in_check_truncation_program", + "representative_payee_deceased_or_unable_to_continue_in_that_capacity", + "return_not_a_duplicate", + "return_of_erroneous_or_reversing_debit", + "return_of_improper_credit_entry", + "return_of_improper_debit_entry", + "return_of_xck_entry", + "source_document_presented_for_payment", + "state_law_affecting_rck_acceptance", + "stop_payment_on_item_related_to_rck_entry", + "stop_payment_on_source_document", + "timely_original_return", + "trace_number_error", + "untimely_dishonored_return", + "untimely_return", + ] + """Why the Prenotification was returned. + + - `insufficient_fund` - Code R01. Insufficient funds in the source account. + - `no_account` - Code R03. The account does not exist or the receiving bank was + unable to locate it. + - `account_closed` - Code R02. The account is closed. + - `invalid_account_number_structure` - Code R04. The account number is invalid + at the receiving bank. + - `account_frozen_entry_returned_per_ofac_instruction` - Code R16. The account + was frozen per the Office of Foreign Assets Control. + - `credit_entry_refused_by_receiver` - Code R23. The receiving bank account + refused a credit transfer. + - `unauthorized_debit_to_consumer_account_using_corporate_sec_code` - Code R05. + The receiving bank rejected because of an incorrect Standard Entry Class code. + - `corporate_customer_advised_not_authorized` - Code R29. The corporate customer + reversed the transfer. + - `payment_stopped` - Code R08. The receiving bank stopped payment on this + transfer. + - `non_transaction_account` - Code R20. The receiving bank account does not + perform transfers. + - `uncollected_funds` - Code R09. The receiving bank account does not have + enough available balance for the transfer. + - `routing_number_check_digit_error` - Code R28. The routing number is + incorrect. + - `customer_advised_unauthorized_improper_ineligible_or_incomplete` - Code R10. + The customer reversed the transfer. + - `amount_field_error` - Code R19. The amount field is incorrect or too large. + - `authorization_revoked_by_customer` - Code R07. The customer who initiated the + transfer revoked authorization. + - `invalid_ach_routing_number` - Code R13. The routing number is invalid. + - `file_record_edit_criteria` - Code R17. The receiving bank is unable to + process a field in the transfer. + - `enr_invalid_individual_name` - Code R45. The individual name field was + invalid. + - `returned_per_odfi_request` - Code R06. The originating financial institution + asked for this transfer to be returned. + - `limited_participation_dfi` - Code R34. The receiving bank's regulatory + supervisor has limited their participation. + - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound + international ACH transfer was incorrect. + - `account_sold_to_another_dfi` - Code R12. A rare return reason. The account + was sold to another bank. + - `addenda_error` - Code R25. The addenda record is incorrect or missing. + - `beneficiary_or_account_holder_deceased` - Code R15. A rare return reason. The + account holder is deceased. + - `customer_advised_not_within_authorization_terms` - Code R11. A rare return + reason. The customer authorized some payment to the sender, but this payment + was not in error. + - `corrected_return` - Code R74. A rare return reason. Sent in response to a + return that was returned with code `field_error`. The latest return should + include the corrected field(s). + - `duplicate_entry` - Code R24. A rare return reason. The receiving bank + received an exact duplicate entry with the same trace number and amount. + - `duplicate_return` - Code R67. A rare return reason. The return this message + refers to was a duplicate. + - `enr_duplicate_enrollment` - Code R47. A rare return reason. Only used for US + Government agency non-monetary automatic enrollment messages. + - `enr_invalid_dfi_account_number` - Code R43. A rare return reason. Only used + for US Government agency non-monetary automatic enrollment messages. + - `enr_invalid_individual_id_number` - Code R44. A rare return reason. Only used + for US Government agency non-monetary automatic enrollment messages. + - `enr_invalid_representative_payee_indicator` - Code R46. A rare return reason. + Only used for US Government agency non-monetary automatic enrollment messages. + - `enr_invalid_transaction_code` - Code R41. A rare return reason. Only used for + US Government agency non-monetary automatic enrollment messages. + - `enr_return_of_enr_entry` - Code R40. A rare return reason. Only used for US + Government agency non-monetary automatic enrollment messages. + - `enr_routing_number_check_digit_error` - Code R42. A rare return reason. Only + used for US Government agency non-monetary automatic enrollment messages. + - `entry_not_processed_by_gateway` - Code R84. A rare return reason. The + International ACH Transfer cannot be processed by the gateway. + - `field_error` - Code R69. A rare return reason. One or more of the fields in + the ACH were malformed. + - `foreign_receiving_dfi_unable_to_settle` - Code R83. A rare return reason. The + Foreign receiving bank was unable to settle this ACH transfer. + - `iat_entry_coding_error` - Code R80. A rare return reason. The International + ACH Transfer is malformed. + - `improper_effective_entry_date` - Code R18. A rare return reason. The ACH has + an improper effective entry date field. + - `improper_source_document_source_document_presented` - Code R39. A rare return + reason. The source document related to this ACH, usually an ACH check + conversion, was presented to the bank. + - `invalid_company_id` - Code R21. A rare return reason. The Company ID field of + the ACH was invalid. + - `invalid_foreign_receiving_dfi_identification` - Code R82. A rare return + reason. The foreign receiving bank identifier for an International ACH + Transfer was invalid. + - `invalid_individual_id_number` - Code R22. A rare return reason. The + Individual ID number field of the ACH was invalid. + - `item_and_rck_entry_presented_for_payment` - Code R53. A rare return reason. + Both the Represented Check ("RCK") entry and the original check were presented + to the bank. + - `item_related_to_rck_entry_is_ineligible` - Code R51. A rare return reason. + The Represented Check ("RCK") entry is ineligible. + - `mandatory_field_error` - Code R26. A rare return reason. The ACH is missing a + required field. + - `misrouted_dishonored_return` - Code R71. A rare return reason. The receiving + bank does not recognize the routing number in a dishonored return entry. + - `misrouted_return` - Code R61. A rare return reason. The receiving bank does + not recognize the routing number in a return entry. + - `no_errors_found` - Code R76. A rare return reason. Sent in response to a + return, the bank does not find the errors alleged by the returning bank. + - `non_acceptance_of_r62_dishonored_return` - Code R77. A rare return reason. + The receiving bank does not accept the return of the erroneous debit. The + funds are not available at the receiving bank. + - `non_participant_in_iat_program` - Code R81. A rare return reason. The + receiving bank does not accept International ACH Transfers. + - `permissible_return_entry` - Code R31. A rare return reason. A return that has + been agreed to be accepted by the receiving bank, despite falling outside of + the usual return timeframe. + - `permissible_return_entry_not_accepted` - Code R70. A rare return reason. The + receiving bank had not approved this return. + - `rdfi_non_settlement` - Code R32. A rare return reason. The receiving bank + could not settle this transaction. + - `rdfi_participant_in_check_truncation_program` - Code R30. A rare return + reason. The receiving bank does not accept Check Truncation ACH transfers. + - `representative_payee_deceased_or_unable_to_continue_in_that_capacity` - Code + R14. A rare return reason. The payee is deceased. + - `return_not_a_duplicate` - Code R75. A rare return reason. The originating + bank disputes that an earlier `duplicate_entry` return was actually a + duplicate. + - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The + originating financial institution made a mistake and this return corrects it. + - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of + a malformed credit entry. + - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a + malformed debit entry. + - `return_of_xck_entry` - Code R33. A rare return reason. Return of a Destroyed + Check ("XKC") entry. + - `source_document_presented_for_payment` - Code R37. A rare return reason. The + source document related to this ACH, usually an ACH check conversion, was + presented to the bank. + - `state_law_affecting_rck_acceptance` - Code R50. A rare return reason. State + law prevents the bank from accepting the Represented Check ("RCK") entry. + - `stop_payment_on_item_related_to_rck_entry` - Code R52. A rare return reason. + A stop payment was issued on a Represented Check ("RCK") entry. + - `stop_payment_on_source_document` - Code R38. A rare return reason. The source + attached to the ACH, usually an ACH check conversion, includes a stop payment. + - `timely_original_return` - Code R73. A rare return reason. The bank receiving + an `untimely_return` believes it was on time. + - `trace_number_error` - Code R27. A rare return reason. An ACH Return's trace + number does not match an originated ACH. + - `untimely_dishonored_return` - Code R72. A rare return reason. The dishonored + return was sent too late. + - `untimely_return` - Code R68. A rare return reason. The return was sent too + late. + """ class ACHPrenotification(BaseModel): diff --git a/src/increase/types/ach_transfer.py b/src/increase/types/ach_transfer.py index ad72a4151..031b9314b 100644 --- a/src/increase/types/ach_transfer.py +++ b/src/increase/types/ach_transfer.py @@ -68,7 +68,9 @@ class NotificationsOfChange(BaseModel): "addenda_format_error", "incorrect_standard_entry_class_code_for_outbound_international_payment", ] - """The type of change that occurred. + """ + The required type of change that is being signaled by the receiving financial + institution. - `incorrect_account_number` - The account number was incorrect. - `incorrect_routing_number` - The routing number was incorrect. @@ -89,7 +91,7 @@ class NotificationsOfChange(BaseModel): """ corrected_data: str - """The corrected data.""" + """The corrected data that should be used in future ACHs to this account.""" created_at: datetime """ @@ -215,7 +217,7 @@ class Return(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -302,7 +304,7 @@ class Return(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -348,7 +350,13 @@ class Submission(BaseModel): """When the ACH transfer was sent to FedACH.""" trace_number: str - """The trace number for the submission.""" + """ + A 15 digit number recorded in the Nacha file and transmitted to the receiving + bank. Along with the amount, date, and originating routing number, this can be + used to identify the ACH transfer at the receiving bank. ACH trace numbers are + not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class ACHTransfer(BaseModel): @@ -512,8 +520,8 @@ class ACHTransfer(BaseModel): After the transfer is submitted to FedACH, this will contain supplemental details. Increase batches transfers and submits a file to the Federal Reserve roughly every 30 minutes. The Federal Reserve processes ACH transfers during - weekdays according to their (posted - schedule)[https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html]. + weekdays according to their + [posted schedule](https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html). """ transaction_id: Optional[str] diff --git a/src/increase/types/check_deposit.py b/src/increase/types/check_deposit.py index 5fcfae59c..88dfe6011 100644 --- a/src/increase/types/check_deposit.py +++ b/src/increase/types/check_deposit.py @@ -142,6 +142,9 @@ class DepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. diff --git a/src/increase/types/declined_transaction.py b/src/increase/types/declined_transaction.py index bbfeb849a..41bef2f82 100644 --- a/src/increase/types/declined_transaction.py +++ b/src/increase/types/declined_transaction.py @@ -62,16 +62,22 @@ class SourceACHDecline(BaseModel): - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. - - `breaches_limit` - The transaction would cause a limit to be exceeded. - - `credit_entry_refused_by_receiver` - A credit was refused. - - `duplicate_return` - Other. + - `breaches_limit` - The transaction would cause an Increase limit to be + exceeded. + - `credit_entry_refused_by_receiver` - A credit was refused. This is a + reasonable default reason for decline of credits. + - `duplicate_return` - A rare return reason. The return this message refers to + was a duplicate. - `entity_not_active` - The account's entity is not active. - `group_locked` - Your account is inactive. - `insufficient_funds` - Your account contains insufficient funds. - - `misrouted_return` - Other. - - `return_of_erroneous_or_reversing_debit` - Other. + - `misrouted_return` - A rare return reason. The return this message refers to + was misrouted. + - `return_of_erroneous_or_reversing_debit` - The originating financial + institution made a mistake and this return corrects it. - `no_ach_route` - The account number that was debited does not exist. - - `originator_request` - Other. + - `originator_request` - The originating financial institution asked for this + transfer to be returned. - `transaction_not_allowed` - The transaction is not allowed per Increase's terms. - `user_initiated` - The user initiated the decline. @@ -301,6 +307,11 @@ class SourceCheckDecline(BaseModel): """ auxiliary_on_us: Optional[str] + """ + A computer-readable number printed on the MICR line of business checks, usually + the check number. This is useful for positive pay checks, but can be unreliably + transmitted by the bank of first deposit. + """ reason: Literal[ "ach_route_canceled", @@ -484,34 +495,53 @@ class SourceWireDecline(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the declined transaction.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" reason: Literal[ "account_number_canceled", diff --git a/src/increase/types/digital_wallet_token.py b/src/increase/types/digital_wallet_token.py index 4d033ce83..250e3f226 100644 --- a/src/increase/types/digital_wallet_token.py +++ b/src/increase/types/digital_wallet_token.py @@ -31,11 +31,12 @@ class DigitalWalletToken(BaseModel): - `deactivated` - The digital wallet token has been permanently canceled. """ - token_requestor: Literal["apple_pay", "google_pay"] + token_requestor: Literal["apple_pay", "google_pay", "unknown"] """The digital wallet app being used. - `apple_pay` - Apple Pay - `google_pay` - Google Pay + - `unknown` - Unknown """ type: Literal["digital_wallet_token"] diff --git a/src/increase/types/entities/__init__.py b/src/increase/types/entities/__init__.py index e6e3724f5..8de0259c4 100644 --- a/src/increase/types/entities/__init__.py +++ b/src/increase/types/entities/__init__.py @@ -15,3 +15,6 @@ from .supplemental_document_create_params import ( SupplementalDocumentCreateParams as SupplementalDocumentCreateParams, ) +from .beneficial_owner_update_address_params import ( + BeneficialOwnerUpdateAddressParams as BeneficialOwnerUpdateAddressParams, +) diff --git a/src/increase/types/entities/beneficial_owner_update_address_params.py b/src/increase/types/entities/beneficial_owner_update_address_params.py new file mode 100644 index 000000000..96c0404da --- /dev/null +++ b/src/increase/types/entities/beneficial_owner_update_address_params.py @@ -0,0 +1,41 @@ +# File generated from our OpenAPI spec by Stainless. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["BeneficialOwnerUpdateAddressParams", "Address"] + + +class BeneficialOwnerUpdateAddressParams(TypedDict, total=False): + address: Required[Address] + """The individual's physical address. Post Office Boxes are disallowed.""" + + beneficial_owner_id: Required[str] + """ + The identifying details of anyone controlling or owning 25% or more of the + corporation. + """ + + entity_id: Required[str] + """The identifier of the Entity to retrieve.""" + + +class Address(TypedDict, total=False): + city: Required[str] + """The city of the address.""" + + line1: Required[str] + """The first line of the address. This is usually the street number and street.""" + + state: Required[str] + """ + The two-letter United States Postal Service (USPS) abbreviation for the state of + the address. + """ + + zip: Required[str] + """The ZIP code of the address.""" + + line2: str + """The second line of the address. This might be the floor or room number.""" diff --git a/src/increase/types/entity_update_address_params.py b/src/increase/types/entity_update_address_params.py new file mode 100644 index 000000000..fe1306b1b --- /dev/null +++ b/src/increase/types/entity_update_address_params.py @@ -0,0 +1,32 @@ +# File generated from our OpenAPI spec by Stainless. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["EntityUpdateAddressParams", "Address"] + + +class EntityUpdateAddressParams(TypedDict, total=False): + address: Required[Address] + """The entity's physical address. Post Office Boxes are disallowed.""" + + +class Address(TypedDict, total=False): + city: Required[str] + """The city of the address.""" + + line1: Required[str] + """The first line of the address. This is usually the street number and street.""" + + state: Required[str] + """ + The two-letter United States Postal Service (USPS) abbreviation for the state of + the address. + """ + + zip: Required[str] + """The ZIP code of the address.""" + + line2: str + """The second line of the address. This might be the floor or room number.""" diff --git a/src/increase/types/external_account_list_params.py b/src/increase/types/external_account_list_params.py index 5d4a3b760..6a5e73ad0 100644 --- a/src/increase/types/external_account_list_params.py +++ b/src/increase/types/external_account_list_params.py @@ -18,6 +18,9 @@ class ExternalAccountListParams(TypedDict, total=False): The default (and maximum) is 100 objects. """ + routing_number: str + """Filter External Accounts to those with the specified Routing Number.""" + status: Status diff --git a/src/increase/types/inbound_ach_transfer.py b/src/increase/types/inbound_ach_transfer.py index e805ff598..7b0331c52 100644 --- a/src/increase/types/inbound_ach_transfer.py +++ b/src/increase/types/inbound_ach_transfer.py @@ -6,7 +6,7 @@ from .._models import BaseModel -__all__ = ["InboundACHTransfer", "Acceptance", "Decline", "TransferReturn"] +__all__ = ["InboundACHTransfer", "Acceptance", "Decline", "NotificationOfChange", "TransferReturn"] class Acceptance(BaseModel): @@ -44,22 +44,36 @@ class Decline(BaseModel): - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. - - `breaches_limit` - The transaction would cause a limit to be exceeded. - - `credit_entry_refused_by_receiver` - A credit was refused. - - `duplicate_return` - Other. + - `breaches_limit` - The transaction would cause an Increase limit to be + exceeded. + - `credit_entry_refused_by_receiver` - A credit was refused. This is a + reasonable default reason for decline of credits. + - `duplicate_return` - A rare return reason. The return this message refers to + was a duplicate. - `entity_not_active` - The account's entity is not active. - `group_locked` - Your account is inactive. - `insufficient_funds` - Your account contains insufficient funds. - - `misrouted_return` - Other. - - `return_of_erroneous_or_reversing_debit` - Other. + - `misrouted_return` - A rare return reason. The return this message refers to + was misrouted. + - `return_of_erroneous_or_reversing_debit` - The originating financial + institution made a mistake and this return corrects it. - `no_ach_route` - The account number that was debited does not exist. - - `originator_request` - Other. + - `originator_request` - The originating financial institution asked for this + transfer to be returned. - `transaction_not_allowed` - The transaction is not allowed per Increase's terms. - `user_initiated` - The user initiated the decline. """ +class NotificationOfChange(BaseModel): + updated_account_number: Optional[str] + """The new account number provided in the notification of change""" + + updated_routing_number: Optional[str] + """The new account number provided in the notification of change""" + + class TransferReturn(BaseModel): reason: Literal[ "authorization_revoked_by_customer", @@ -106,6 +120,9 @@ class InboundACHTransfer(BaseModel): acceptance: Optional[Acceptance] """If your transfer is accepted, this will contain details of the acceptance.""" + account_number_id: str + """The identifier of the Account Number to which this transfer was sent.""" + amount: int """The transfer amount in USD cents.""" @@ -122,6 +139,12 @@ class InboundACHTransfer(BaseModel): - `debit` - Debit """ + notification_of_change: Optional[NotificationOfChange] + """ + If you initiate a notification of change in response to the transfer, this will + contain its details. + """ + originator_company_descriptive_date: Optional[str] """The descriptive date of the transfer.""" diff --git a/src/increase/types/inbound_ach_transfer_notification_of_change_params.py b/src/increase/types/inbound_ach_transfer_notification_of_change_params.py new file mode 100644 index 000000000..98b7c72cd --- /dev/null +++ b/src/increase/types/inbound_ach_transfer_notification_of_change_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["InboundACHTransferNotificationOfChangeParams"] + + +class InboundACHTransferNotificationOfChangeParams(TypedDict, total=False): + updated_account_number: str + """The updated account number to send in the notification of change.""" + + updated_routing_number: str + """The updated routing number to send in the notification of change.""" diff --git a/src/increase/types/pending_transaction.py b/src/increase/types/pending_transaction.py index f1969c46d..530ce2f04 100644 --- a/src/increase/types/pending_transaction.py +++ b/src/increase/types/pending_transaction.py @@ -366,6 +366,7 @@ class SourceRealTimePaymentsTransferInstruction(BaseModel): class SourceWireTransferInstruction(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The pending amount in the minor unit of the transaction's currency. @@ -374,10 +375,16 @@ class SourceWireTransferInstruction(BaseModel): """ message_to_recipient: str + """The message that will show on the recipient's bank statement.""" routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ transfer_id: str + """The identifier of the Wire Transfer that led to this Pending Transaction.""" class Source(BaseModel): diff --git a/src/increase/types/real_time_decision.py b/src/increase/types/real_time_decision.py index cd6f994f2..b78b6cec4 100644 --- a/src/increase/types/real_time_decision.py +++ b/src/increase/types/real_time_decision.py @@ -231,11 +231,12 @@ class DigitalWalletAuthentication(BaseModel): - `email` - Send one-time passcodes over email. """ - digital_wallet: Literal["apple_pay", "google_pay"] + digital_wallet: Literal["apple_pay", "google_pay", "unknown"] """The digital wallet app being used. - `apple_pay` - Apple Pay - `google_pay` - Google Pay + - `unknown` - Unknown """ email: Optional[str] @@ -280,11 +281,12 @@ class DigitalWalletToken(BaseModel): - `decline` - Decline the provisioning request. """ - digital_wallet: Literal["apple_pay", "google_pay"] + digital_wallet: Literal["apple_pay", "google_pay", "unknown"] """The digital wallet app being used. - `apple_pay` - Apple Pay - `google_pay` - Google Pay + - `unknown` - Unknown """ diff --git a/src/increase/types/simulations/ach_transfer_return_params.py b/src/increase/types/simulations/ach_transfer_return_params.py index cf029b9b4..011c7e403 100644 --- a/src/increase/types/simulations/ach_transfer_return_params.py +++ b/src/increase/types/simulations/ach_transfer_return_params.py @@ -117,7 +117,7 @@ class ACHTransferReturnParams(TypedDict, total=False): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -204,7 +204,7 @@ class ACHTransferReturnParams(TypedDict, total=False): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a diff --git a/src/increase/types/simulations/ach_transfer_simulation.py b/src/increase/types/simulations/ach_transfer_simulation.py index 93b8d3e4f..a3740ea64 100644 --- a/src/increase/types/simulations/ach_transfer_simulation.py +++ b/src/increase/types/simulations/ach_transfer_simulation.py @@ -107,16 +107,22 @@ class DeclinedTransactionSourceACHDecline(BaseModel): - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. - - `breaches_limit` - The transaction would cause a limit to be exceeded. - - `credit_entry_refused_by_receiver` - A credit was refused. - - `duplicate_return` - Other. + - `breaches_limit` - The transaction would cause an Increase limit to be + exceeded. + - `credit_entry_refused_by_receiver` - A credit was refused. This is a + reasonable default reason for decline of credits. + - `duplicate_return` - A rare return reason. The return this message refers to + was a duplicate. - `entity_not_active` - The account's entity is not active. - `group_locked` - Your account is inactive. - `insufficient_funds` - Your account contains insufficient funds. - - `misrouted_return` - Other. - - `return_of_erroneous_or_reversing_debit` - Other. + - `misrouted_return` - A rare return reason. The return this message refers to + was misrouted. + - `return_of_erroneous_or_reversing_debit` - The originating financial + institution made a mistake and this return corrects it. - `no_ach_route` - The account number that was debited does not exist. - - `originator_request` - Other. + - `originator_request` - The originating financial institution asked for this + transfer to be returned. - `transaction_not_allowed` - The transaction is not allowed per Increase's terms. - `user_initiated` - The user initiated the decline. @@ -346,6 +352,11 @@ class DeclinedTransactionSourceCheckDecline(BaseModel): """ auxiliary_on_us: Optional[str] + """ + A computer-readable number printed on the MICR line of business checks, usually + the check number. This is useful for positive pay checks, but can be unreliably + transmitted by the bank of first deposit. + """ reason: Literal[ "ach_route_canceled", @@ -529,34 +540,53 @@ class DeclinedTransactionSourceWireDecline(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the declined transaction.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" reason: Literal[ "account_number_canceled", @@ -754,6 +784,7 @@ class TransactionSourceAccountTransferIntention(BaseModel): class TransactionSourceACHTransferIntention(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The amount in the minor unit of the transaction's currency. @@ -762,8 +793,13 @@ class TransactionSourceACHTransferIntention(BaseModel): """ routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ statement_descriptor: str + """A description set when the ACH Transfer was created.""" transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -891,7 +927,7 @@ class TransactionSourceACHTransferReturn(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -978,7 +1014,7 @@ class TransactionSourceACHTransferReturn(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -2091,6 +2127,9 @@ class TransactionSourceCheckDepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. @@ -2245,20 +2284,41 @@ class TransactionSourceInboundACHTransfer(BaseModel): """ originator_company_descriptive_date: Optional[str] + """The description of the date of the transfer, usually in the format `YYMMDD`.""" originator_company_discretionary_data: Optional[str] + """Data set by the originator.""" originator_company_entry_description: str + """An informational description of the transfer.""" originator_company_id: str + """An identifier for the originating company. + + This is generally, but not always, a stable identifier across multiple + transfers. + """ originator_company_name: str + """A name set by the originator to identify themselves.""" receiver_id_number: Optional[str] + """The originator's identifier for the transfer receipient.""" receiver_name: Optional[str] + """The name of the transfer recipient. + + This value is informational and not verified by Increase. + """ trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ transfer_id: str """The inbound ach transfer's identifier.""" @@ -2279,10 +2339,16 @@ class TransactionSourceInboundCheck(BaseModel): """ check_front_image_file_id: Optional[str] + """The front image of the check. This is a black and white TIFF image file.""" check_number: Optional[str] + """The number of the check. + + This field is set by the depositing bank and can be unreliable. + """ check_rear_image_file_id: Optional[str] + """The rear image of the check. This is a black and white TIFF image file.""" currency: Literal["CAD", "CHF", "EUR", "GBP", "JPY", "USD"] """ @@ -2423,28 +2489,56 @@ class TransactionSourceInboundWireDrawdownPayment(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the receiving bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" + + originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): @@ -2481,7 +2575,7 @@ class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): class TransactionSourceInboundWireReversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -2490,13 +2584,19 @@ class TransactionSourceInboundWireReversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -2508,7 +2608,10 @@ class TransactionSourceInboundWireReversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" @@ -2534,42 +2637,59 @@ class TransactionSourceInboundWireReversal(BaseModel): class TransactionSourceInboundWireTransfer(BaseModel): amount: int - """The amount in the minor unit of the transaction's currency. - - For dollars, for example, this is cents. - """ + """The amount in USD cents.""" beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInterestPayment(BaseModel): @@ -2637,7 +2757,10 @@ class TransactionSourceInternalSource(BaseModel): "sample_funds", "sample_funds_return", ] - """ + """An Internal Source is a transaction between you and Increase. + + This describes the reason for the transaction. + - `account_closure` - Account closure - `bank_migration` - Bank migration - `cashback` - Cashback @@ -2690,10 +2813,12 @@ class TransactionSourceWireTransferIntention(BaseModel): """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSourceWireTransferRejection(BaseModel): transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSource(BaseModel): diff --git a/src/increase/types/simulations/card_authorization_simulation.py b/src/increase/types/simulations/card_authorization_simulation.py index 3f9e87c0c..fe479b5c5 100644 --- a/src/increase/types/simulations/card_authorization_simulation.py +++ b/src/increase/types/simulations/card_authorization_simulation.py @@ -75,16 +75,22 @@ class DeclinedTransactionSourceACHDecline(BaseModel): - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. - - `breaches_limit` - The transaction would cause a limit to be exceeded. - - `credit_entry_refused_by_receiver` - A credit was refused. - - `duplicate_return` - Other. + - `breaches_limit` - The transaction would cause an Increase limit to be + exceeded. + - `credit_entry_refused_by_receiver` - A credit was refused. This is a + reasonable default reason for decline of credits. + - `duplicate_return` - A rare return reason. The return this message refers to + was a duplicate. - `entity_not_active` - The account's entity is not active. - `group_locked` - Your account is inactive. - `insufficient_funds` - Your account contains insufficient funds. - - `misrouted_return` - Other. - - `return_of_erroneous_or_reversing_debit` - Other. + - `misrouted_return` - A rare return reason. The return this message refers to + was misrouted. + - `return_of_erroneous_or_reversing_debit` - The originating financial + institution made a mistake and this return corrects it. - `no_ach_route` - The account number that was debited does not exist. - - `originator_request` - Other. + - `originator_request` - The originating financial institution asked for this + transfer to be returned. - `transaction_not_allowed` - The transaction is not allowed per Increase's terms. - `user_initiated` - The user initiated the decline. @@ -314,6 +320,11 @@ class DeclinedTransactionSourceCheckDecline(BaseModel): """ auxiliary_on_us: Optional[str] + """ + A computer-readable number printed on the MICR line of business checks, usually + the check number. This is useful for positive pay checks, but can be unreliably + transmitted by the bank of first deposit. + """ reason: Literal[ "ach_route_canceled", @@ -497,34 +508,53 @@ class DeclinedTransactionSourceWireDecline(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the declined transaction.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" reason: Literal[ "account_number_canceled", @@ -1031,6 +1061,7 @@ class PendingTransactionSourceRealTimePaymentsTransferInstruction(BaseModel): class PendingTransactionSourceWireTransferInstruction(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The pending amount in the minor unit of the transaction's currency. @@ -1039,10 +1070,16 @@ class PendingTransactionSourceWireTransferInstruction(BaseModel): """ message_to_recipient: str + """The message that will show on the recipient's bank statement.""" routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ transfer_id: str + """The identifier of the Wire Transfer that led to this Pending Transaction.""" class PendingTransactionSource(BaseModel): diff --git a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py index 327261373..15df0fec0 100644 --- a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py +++ b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py @@ -107,16 +107,22 @@ class DeclinedTransactionSourceACHDecline(BaseModel): - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. - - `breaches_limit` - The transaction would cause a limit to be exceeded. - - `credit_entry_refused_by_receiver` - A credit was refused. - - `duplicate_return` - Other. + - `breaches_limit` - The transaction would cause an Increase limit to be + exceeded. + - `credit_entry_refused_by_receiver` - A credit was refused. This is a + reasonable default reason for decline of credits. + - `duplicate_return` - A rare return reason. The return this message refers to + was a duplicate. - `entity_not_active` - The account's entity is not active. - `group_locked` - Your account is inactive. - `insufficient_funds` - Your account contains insufficient funds. - - `misrouted_return` - Other. - - `return_of_erroneous_or_reversing_debit` - Other. + - `misrouted_return` - A rare return reason. The return this message refers to + was misrouted. + - `return_of_erroneous_or_reversing_debit` - The originating financial + institution made a mistake and this return corrects it. - `no_ach_route` - The account number that was debited does not exist. - - `originator_request` - Other. + - `originator_request` - The originating financial institution asked for this + transfer to be returned. - `transaction_not_allowed` - The transaction is not allowed per Increase's terms. - `user_initiated` - The user initiated the decline. @@ -346,6 +352,11 @@ class DeclinedTransactionSourceCheckDecline(BaseModel): """ auxiliary_on_us: Optional[str] + """ + A computer-readable number printed on the MICR line of business checks, usually + the check number. This is useful for positive pay checks, but can be unreliably + transmitted by the bank of first deposit. + """ reason: Literal[ "ach_route_canceled", @@ -529,34 +540,53 @@ class DeclinedTransactionSourceWireDecline(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the declined transaction.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" reason: Literal[ "account_number_canceled", @@ -754,6 +784,7 @@ class TransactionSourceAccountTransferIntention(BaseModel): class TransactionSourceACHTransferIntention(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The amount in the minor unit of the transaction's currency. @@ -762,8 +793,13 @@ class TransactionSourceACHTransferIntention(BaseModel): """ routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ statement_descriptor: str + """A description set when the ACH Transfer was created.""" transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -891,7 +927,7 @@ class TransactionSourceACHTransferReturn(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -978,7 +1014,7 @@ class TransactionSourceACHTransferReturn(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -2091,6 +2127,9 @@ class TransactionSourceCheckDepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. @@ -2245,20 +2284,41 @@ class TransactionSourceInboundACHTransfer(BaseModel): """ originator_company_descriptive_date: Optional[str] + """The description of the date of the transfer, usually in the format `YYMMDD`.""" originator_company_discretionary_data: Optional[str] + """Data set by the originator.""" originator_company_entry_description: str + """An informational description of the transfer.""" originator_company_id: str + """An identifier for the originating company. + + This is generally, but not always, a stable identifier across multiple + transfers. + """ originator_company_name: str + """A name set by the originator to identify themselves.""" receiver_id_number: Optional[str] + """The originator's identifier for the transfer receipient.""" receiver_name: Optional[str] + """The name of the transfer recipient. + + This value is informational and not verified by Increase. + """ trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ transfer_id: str """The inbound ach transfer's identifier.""" @@ -2279,10 +2339,16 @@ class TransactionSourceInboundCheck(BaseModel): """ check_front_image_file_id: Optional[str] + """The front image of the check. This is a black and white TIFF image file.""" check_number: Optional[str] + """The number of the check. + + This field is set by the depositing bank and can be unreliable. + """ check_rear_image_file_id: Optional[str] + """The rear image of the check. This is a black and white TIFF image file.""" currency: Literal["CAD", "CHF", "EUR", "GBP", "JPY", "USD"] """ @@ -2423,28 +2489,56 @@ class TransactionSourceInboundWireDrawdownPayment(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the receiving bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" + + originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): @@ -2481,7 +2575,7 @@ class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): class TransactionSourceInboundWireReversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -2490,13 +2584,19 @@ class TransactionSourceInboundWireReversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -2508,7 +2608,10 @@ class TransactionSourceInboundWireReversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" @@ -2534,42 +2637,59 @@ class TransactionSourceInboundWireReversal(BaseModel): class TransactionSourceInboundWireTransfer(BaseModel): amount: int - """The amount in the minor unit of the transaction's currency. - - For dollars, for example, this is cents. - """ + """The amount in USD cents.""" beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInterestPayment(BaseModel): @@ -2637,7 +2757,10 @@ class TransactionSourceInternalSource(BaseModel): "sample_funds", "sample_funds_return", ] - """ + """An Internal Source is a transaction between you and Increase. + + This describes the reason for the transaction. + - `account_closure` - Account closure - `bank_migration` - Bank migration - `cashback` - Cashback @@ -2690,10 +2813,12 @@ class TransactionSourceWireTransferIntention(BaseModel): """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSourceWireTransferRejection(BaseModel): transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSource(BaseModel): diff --git a/src/increase/types/simulations/interest_payment_simulation_result.py b/src/increase/types/simulations/interest_payment_simulation_result.py index 8044e5999..0b23d8321 100644 --- a/src/increase/types/simulations/interest_payment_simulation_result.py +++ b/src/increase/types/simulations/interest_payment_simulation_result.py @@ -90,6 +90,7 @@ class TransactionSourceAccountTransferIntention(BaseModel): class TransactionSourceACHTransferIntention(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The amount in the minor unit of the transaction's currency. @@ -98,8 +99,13 @@ class TransactionSourceACHTransferIntention(BaseModel): """ routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ statement_descriptor: str + """A description set when the ACH Transfer was created.""" transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -227,7 +233,7 @@ class TransactionSourceACHTransferReturn(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -314,7 +320,7 @@ class TransactionSourceACHTransferReturn(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -1427,6 +1433,9 @@ class TransactionSourceCheckDepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. @@ -1581,20 +1590,41 @@ class TransactionSourceInboundACHTransfer(BaseModel): """ originator_company_descriptive_date: Optional[str] + """The description of the date of the transfer, usually in the format `YYMMDD`.""" originator_company_discretionary_data: Optional[str] + """Data set by the originator.""" originator_company_entry_description: str + """An informational description of the transfer.""" originator_company_id: str + """An identifier for the originating company. + + This is generally, but not always, a stable identifier across multiple + transfers. + """ originator_company_name: str + """A name set by the originator to identify themselves.""" receiver_id_number: Optional[str] + """The originator's identifier for the transfer receipient.""" receiver_name: Optional[str] + """The name of the transfer recipient. + + This value is informational and not verified by Increase. + """ trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ transfer_id: str """The inbound ach transfer's identifier.""" @@ -1615,10 +1645,16 @@ class TransactionSourceInboundCheck(BaseModel): """ check_front_image_file_id: Optional[str] + """The front image of the check. This is a black and white TIFF image file.""" check_number: Optional[str] + """The number of the check. + + This field is set by the depositing bank and can be unreliable. + """ check_rear_image_file_id: Optional[str] + """The rear image of the check. This is a black and white TIFF image file.""" currency: Literal["CAD", "CHF", "EUR", "GBP", "JPY", "USD"] """ @@ -1759,28 +1795,56 @@ class TransactionSourceInboundWireDrawdownPayment(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the receiving bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" + + originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): @@ -1817,7 +1881,7 @@ class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): class TransactionSourceInboundWireReversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -1826,13 +1890,19 @@ class TransactionSourceInboundWireReversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -1844,7 +1914,10 @@ class TransactionSourceInboundWireReversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" @@ -1870,42 +1943,59 @@ class TransactionSourceInboundWireReversal(BaseModel): class TransactionSourceInboundWireTransfer(BaseModel): amount: int - """The amount in the minor unit of the transaction's currency. - - For dollars, for example, this is cents. - """ + """The amount in USD cents.""" beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInterestPayment(BaseModel): @@ -1973,7 +2063,10 @@ class TransactionSourceInternalSource(BaseModel): "sample_funds", "sample_funds_return", ] - """ + """An Internal Source is a transaction between you and Increase. + + This describes the reason for the transaction. + - `account_closure` - Account closure - `bank_migration` - Bank migration - `cashback` - Cashback @@ -2026,10 +2119,12 @@ class TransactionSourceWireTransferIntention(BaseModel): """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSourceWireTransferRejection(BaseModel): transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSource(BaseModel): diff --git a/src/increase/types/simulations/wire_transfer_simulation.py b/src/increase/types/simulations/wire_transfer_simulation.py index 177ae8874..59f57362f 100644 --- a/src/increase/types/simulations/wire_transfer_simulation.py +++ b/src/increase/types/simulations/wire_transfer_simulation.py @@ -90,6 +90,7 @@ class TransactionSourceAccountTransferIntention(BaseModel): class TransactionSourceACHTransferIntention(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The amount in the minor unit of the transaction's currency. @@ -98,8 +99,13 @@ class TransactionSourceACHTransferIntention(BaseModel): """ routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ statement_descriptor: str + """A description set when the ACH Transfer was created.""" transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -227,7 +233,7 @@ class TransactionSourceACHTransferReturn(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -314,7 +320,7 @@ class TransactionSourceACHTransferReturn(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -1427,6 +1433,9 @@ class TransactionSourceCheckDepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. @@ -1581,20 +1590,41 @@ class TransactionSourceInboundACHTransfer(BaseModel): """ originator_company_descriptive_date: Optional[str] + """The description of the date of the transfer, usually in the format `YYMMDD`.""" originator_company_discretionary_data: Optional[str] + """Data set by the originator.""" originator_company_entry_description: str + """An informational description of the transfer.""" originator_company_id: str + """An identifier for the originating company. + + This is generally, but not always, a stable identifier across multiple + transfers. + """ originator_company_name: str + """A name set by the originator to identify themselves.""" receiver_id_number: Optional[str] + """The originator's identifier for the transfer receipient.""" receiver_name: Optional[str] + """The name of the transfer recipient. + + This value is informational and not verified by Increase. + """ trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ transfer_id: str """The inbound ach transfer's identifier.""" @@ -1615,10 +1645,16 @@ class TransactionSourceInboundCheck(BaseModel): """ check_front_image_file_id: Optional[str] + """The front image of the check. This is a black and white TIFF image file.""" check_number: Optional[str] + """The number of the check. + + This field is set by the depositing bank and can be unreliable. + """ check_rear_image_file_id: Optional[str] + """The rear image of the check. This is a black and white TIFF image file.""" currency: Literal["CAD", "CHF", "EUR", "GBP", "JPY", "USD"] """ @@ -1759,28 +1795,56 @@ class TransactionSourceInboundWireDrawdownPayment(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the receiving bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" + + originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): @@ -1817,7 +1881,7 @@ class TransactionSourceInboundWireDrawdownPaymentReversal(BaseModel): class TransactionSourceInboundWireReversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -1826,13 +1890,19 @@ class TransactionSourceInboundWireReversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -1844,7 +1914,10 @@ class TransactionSourceInboundWireReversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" @@ -1870,42 +1943,59 @@ class TransactionSourceInboundWireReversal(BaseModel): class TransactionSourceInboundWireTransfer(BaseModel): amount: int - """The amount in the minor unit of the transaction's currency. - - For dollars, for example, this is cents. - """ + """The amount in USD cents.""" beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class TransactionSourceInterestPayment(BaseModel): @@ -1973,7 +2063,10 @@ class TransactionSourceInternalSource(BaseModel): "sample_funds", "sample_funds_return", ] - """ + """An Internal Source is a transaction between you and Increase. + + This describes the reason for the transaction. + - `account_closure` - Account closure - `bank_migration` - Bank migration - `cashback` - Cashback @@ -2026,10 +2119,12 @@ class TransactionSourceWireTransferIntention(BaseModel): """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSourceWireTransferRejection(BaseModel): transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class TransactionSource(BaseModel): diff --git a/src/increase/types/transaction.py b/src/increase/types/transaction.py index a92484ab0..73a65d720 100644 --- a/src/increase/types/transaction.py +++ b/src/increase/types/transaction.py @@ -89,6 +89,7 @@ class SourceAccountTransferIntention(BaseModel): class SourceACHTransferIntention(BaseModel): account_number: str + """The account number for the destination account.""" amount: int """The amount in the minor unit of the transaction's currency. @@ -97,8 +98,13 @@ class SourceACHTransferIntention(BaseModel): """ routing_number: str + """ + The American Bankers' Association (ABA) Routing Transit Number (RTN) for the + destination account. + """ statement_descriptor: str + """A description set when the ACH Transfer was created.""" transfer_id: str """The identifier of the ACH Transfer that led to this Transaction.""" @@ -226,7 +232,7 @@ class SourceACHTransferReturn(BaseModel): - `enr_invalid_individual_name` - Code R45. The individual name field was invalid. - `returned_per_odfi_request` - Code R06. The originating financial institution - reversed the transfer. + asked for this transfer to be returned. - `limited_participation_dfi` - Code R34. The receiving bank's regulatory supervisor has limited their participation. - `incorrectly_coded_outbound_international_payment` - Code R85. The outbound @@ -313,7 +319,7 @@ class SourceACHTransferReturn(BaseModel): bank disputes that an earlier `duplicate_entry` return was actually a duplicate. - `return_of_erroneous_or_reversing_debit` - Code R62. A rare return reason. The - originating bank made a mistake earlier and this return corrects it. + originating financial institution made a mistake and this return corrects it. - `return_of_improper_credit_entry` - Code R36. A rare return reason. Return of a malformed credit entry. - `return_of_improper_debit_entry` - Code R35. A rare return reason. Return of a @@ -1426,6 +1432,9 @@ class SourceCheckDepositReturn(BaseModel): "endorsement_irregular", ] """ + Why this check was returned by the bank holding the account it was drawn + against. + - `ach_conversion_not_supported` - The check doesn't allow ACH conversion. - `closed_account` - The account is closed. - `duplicate_submission` - The check has already been deposited. @@ -1580,20 +1589,41 @@ class SourceInboundACHTransfer(BaseModel): """ originator_company_descriptive_date: Optional[str] + """The description of the date of the transfer, usually in the format `YYMMDD`.""" originator_company_discretionary_data: Optional[str] + """Data set by the originator.""" originator_company_entry_description: str + """An informational description of the transfer.""" originator_company_id: str + """An identifier for the originating company. + + This is generally, but not always, a stable identifier across multiple + transfers. + """ originator_company_name: str + """A name set by the originator to identify themselves.""" receiver_id_number: Optional[str] + """The originator's identifier for the transfer receipient.""" receiver_name: Optional[str] + """The name of the transfer recipient. + + This value is informational and not verified by Increase. + """ trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ transfer_id: str """The inbound ach transfer's identifier.""" @@ -1614,10 +1644,16 @@ class SourceInboundCheck(BaseModel): """ check_front_image_file_id: Optional[str] + """The front image of the check. This is a black and white TIFF image file.""" check_number: Optional[str] + """The number of the check. + + This field is set by the depositing bank and can be unreliable. + """ check_rear_image_file_id: Optional[str] + """The rear image of the check. This is a black and white TIFF image file.""" currency: Literal["CAD", "CHF", "EUR", "GBP", "JPY", "USD"] """ @@ -1758,28 +1794,56 @@ class SourceInboundWireDrawdownPayment(BaseModel): """ beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the receiving bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" + + originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" + + originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class SourceInboundWireDrawdownPaymentReversal(BaseModel): @@ -1816,7 +1880,7 @@ class SourceInboundWireDrawdownPaymentReversal(BaseModel): class SourceInboundWireReversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -1825,13 +1889,19 @@ class SourceInboundWireReversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -1843,7 +1913,10 @@ class SourceInboundWireReversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" @@ -1869,42 +1942,59 @@ class SourceInboundWireReversal(BaseModel): class SourceInboundWireTransfer(BaseModel): amount: int - """The amount in the minor unit of the transaction's currency. - - For dollars, for example, this is cents. - """ + """The amount in USD cents.""" beneficiary_address_line1: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line2: Optional[str] + """A free-form address field set by the sender.""" beneficiary_address_line3: Optional[str] + """A free-form address field set by the sender.""" beneficiary_name: Optional[str] + """A name set by the sender.""" beneficiary_reference: Optional[str] + """A free-form reference string set by the sender, to help identify the transfer.""" description: str + """An Increase-constructed description of the transfer.""" input_message_accountability_data: Optional[str] + """ + A unique identifier available to the originating and receiving banks, commonly + abbreviated as IMAD. It is created when the wire is submitted to the Fedwire + service and is helpful when debugging wires with the originating bank. + """ originator_address_line1: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line2: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_address_line3: Optional[str] + """The address of the wire originator, set by the sending bank.""" originator_name: Optional[str] + """The originator of the wire, set by the sending bank.""" originator_to_beneficiary_information: Optional[str] + """An Increase-created concatenation of the Originator-to-Beneficiary lines.""" originator_to_beneficiary_information_line1: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line2: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line3: Optional[str] + """A free-form message set by the wire originator.""" originator_to_beneficiary_information_line4: Optional[str] + """A free-form message set by the wire originator.""" class SourceInterestPayment(BaseModel): @@ -1972,7 +2062,10 @@ class SourceInternalSource(BaseModel): "sample_funds", "sample_funds_return", ] - """ + """An Internal Source is a transaction between you and Increase. + + This describes the reason for the transaction. + - `account_closure` - Account closure - `bank_migration` - Bank migration - `cashback` - Cashback @@ -2025,10 +2118,12 @@ class SourceWireTransferIntention(BaseModel): """The American Bankers' Association (ABA) Routing Transit Number (RTN).""" transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class SourceWireTransferRejection(BaseModel): transfer_id: str + """The identifier of the Wire Transfer that led to this Transaction.""" class Source(BaseModel): diff --git a/src/increase/types/wire_transfer.py b/src/increase/types/wire_transfer.py index 50310f514..253a0a0e1 100644 --- a/src/increase/types/wire_transfer.py +++ b/src/increase/types/wire_transfer.py @@ -39,7 +39,7 @@ class Cancellation(BaseModel): class Reversal(BaseModel): amount: int - """The amount that was reversed.""" + """The amount that was reversed in USD cents.""" created_at: datetime """ @@ -48,13 +48,19 @@ class Reversal(BaseModel): """ description: str - """The description on the reversal message from Fedwire.""" + """ + The description on the reversal message from Fedwire, set by the reversing bank. + """ financial_institution_to_financial_institution_information: Optional[str] """Additional financial institution information included in the wire reversal.""" input_cycle_date: date - """The Fedwire cycle date for the wire reversal.""" + """The Fedwire cycle date for the wire reversal. + + The "Fedwire day" begins at 9:00 PM Eastern Time on the evening before the + `cycle date`. + """ input_message_accountability_data: str """The Fedwire transaction identifier.""" @@ -66,7 +72,10 @@ class Reversal(BaseModel): """The Fedwire input source identifier.""" previous_message_input_cycle_date: date - """The Fedwire cycle date for the wire transfer that was reversed.""" + """ + The Fedwire cycle date for the wire transfer that is being reversed by this + message. + """ previous_message_input_message_accountability_data: str """The Fedwire transaction identifier for the wire transfer that was reversed.""" diff --git a/tests/api_resources/entities/test_beneficial_owners.py b/tests/api_resources/entities/test_beneficial_owners.py index b427f83fa..43a839fbe 100644 --- a/tests/api_resources/entities/test_beneficial_owners.py +++ b/tests/api_resources/entities/test_beneficial_owners.py @@ -97,6 +97,35 @@ def test_method_archive(self, client: Increase) -> None: ) assert_matches_type(Entity, beneficial_owner, path=["response"]) + @parametrize + def test_method_update_address(self, client: Increase) -> None: + beneficial_owner = client.entities.beneficial_owners.update_address( + address={ + "line1": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + beneficial_owner_id="string", + entity_id="string", + ) + assert_matches_type(Entity, beneficial_owner, path=["response"]) + + @parametrize + def test_method_update_address_with_all_params(self, client: Increase) -> None: + beneficial_owner = client.entities.beneficial_owners.update_address( + address={ + "line1": "x", + "line2": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + beneficial_owner_id="string", + entity_id="string", + ) + assert_matches_type(Entity, beneficial_owner, path=["response"]) + class TestAsyncBeneficialOwners: strict_client = AsyncIncrease(base_url=base_url, api_key=api_key, _strict_response_validation=True) @@ -179,3 +208,32 @@ async def test_method_archive(self, client: AsyncIncrease) -> None: entity_id="string", ) assert_matches_type(Entity, beneficial_owner, path=["response"]) + + @parametrize + async def test_method_update_address(self, client: AsyncIncrease) -> None: + beneficial_owner = await client.entities.beneficial_owners.update_address( + address={ + "line1": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + beneficial_owner_id="string", + entity_id="string", + ) + assert_matches_type(Entity, beneficial_owner, path=["response"]) + + @parametrize + async def test_method_update_address_with_all_params(self, client: AsyncIncrease) -> None: + beneficial_owner = await client.entities.beneficial_owners.update_address( + address={ + "line1": "x", + "line2": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + beneficial_owner_id="string", + entity_id="string", + ) + assert_matches_type(Entity, beneficial_owner, path=["response"]) diff --git a/tests/api_resources/test_entities.py b/tests/api_resources/test_entities.py index 5ae7b5268..7615fcfde 100644 --- a/tests/api_resources/test_entities.py +++ b/tests/api_resources/test_entities.py @@ -503,6 +503,33 @@ def test_method_archive(self, client: Increase) -> None: ) assert_matches_type(Entity, entity, path=["response"]) + @parametrize + def test_method_update_address(self, client: Increase) -> None: + entity = client.entities.update_address( + "string", + address={ + "line1": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + ) + assert_matches_type(Entity, entity, path=["response"]) + + @parametrize + def test_method_update_address_with_all_params(self, client: Increase) -> None: + entity = client.entities.update_address( + "string", + address={ + "line1": "x", + "line2": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + ) + assert_matches_type(Entity, entity, path=["response"]) + class TestAsyncEntities: strict_client = AsyncIncrease(base_url=base_url, api_key=api_key, _strict_response_validation=True) @@ -990,3 +1017,30 @@ async def test_method_archive(self, client: AsyncIncrease) -> None: "string", ) assert_matches_type(Entity, entity, path=["response"]) + + @parametrize + async def test_method_update_address(self, client: AsyncIncrease) -> None: + entity = await client.entities.update_address( + "string", + address={ + "line1": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + ) + assert_matches_type(Entity, entity, path=["response"]) + + @parametrize + async def test_method_update_address_with_all_params(self, client: AsyncIncrease) -> None: + entity = await client.entities.update_address( + "string", + address={ + "line1": "x", + "line2": "x", + "city": "x", + "state": "x", + "zip": "x", + }, + ) + assert_matches_type(Entity, entity, path=["response"]) diff --git a/tests/api_resources/test_external_accounts.py b/tests/api_resources/test_external_accounts.py index 325a8e97d..c1c6c9c64 100644 --- a/tests/api_resources/test_external_accounts.py +++ b/tests/api_resources/test_external_accounts.py @@ -72,6 +72,7 @@ def test_method_list_with_all_params(self, client: Increase) -> None: external_account = client.external_accounts.list( cursor="string", limit=0, + routing_number="xxxxxxxxx", status={"in": ["active", "active", "active"]}, ) assert_matches_type(SyncPage[ExternalAccount], external_account, path=["response"]) @@ -134,6 +135,7 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: external_account = await client.external_accounts.list( cursor="string", limit=0, + routing_number="xxxxxxxxx", status={"in": ["active", "active", "active"]}, ) assert_matches_type(AsyncPage[ExternalAccount], external_account, path=["response"]) diff --git a/tests/api_resources/test_inbound_ach_transfers.py b/tests/api_resources/test_inbound_ach_transfers.py index 98dc824d2..26f0db524 100644 --- a/tests/api_resources/test_inbound_ach_transfers.py +++ b/tests/api_resources/test_inbound_ach_transfers.py @@ -56,6 +56,22 @@ def test_method_decline(self, client: Increase) -> None: ) assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + @parametrize + def test_method_notification_of_change(self, client: Increase) -> None: + inbound_ach_transfer = client.inbound_ach_transfers.notification_of_change( + "string", + ) + assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + + @parametrize + def test_method_notification_of_change_with_all_params(self, client: Increase) -> None: + inbound_ach_transfer = client.inbound_ach_transfers.notification_of_change( + "string", + updated_account_number="x", + updated_routing_number="x", + ) + assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + @parametrize def test_method_transfer_return(self, client: Increase) -> None: inbound_ach_transfer = client.inbound_ach_transfers.transfer_return( @@ -105,6 +121,22 @@ async def test_method_decline(self, client: AsyncIncrease) -> None: ) assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + @parametrize + async def test_method_notification_of_change(self, client: AsyncIncrease) -> None: + inbound_ach_transfer = await client.inbound_ach_transfers.notification_of_change( + "string", + ) + assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + + @parametrize + async def test_method_notification_of_change_with_all_params(self, client: AsyncIncrease) -> None: + inbound_ach_transfer = await client.inbound_ach_transfers.notification_of_change( + "string", + updated_account_number="x", + updated_routing_number="x", + ) + assert_matches_type(InboundACHTransfer, inbound_ach_transfer, path=["response"]) + @parametrize async def test_method_transfer_return(self, client: AsyncIncrease) -> None: inbound_ach_transfer = await client.inbound_ach_transfers.transfer_return( From f6ccd0252554f20f57ce68a92b055350907875ac Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 6 Sep 2023 08:22:51 -0400 Subject: [PATCH 07/15] fix(client): properly handle optional file params (#110) --- src/increase/_utils/_utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/increase/_utils/_utils.py b/src/increase/_utils/_utils.py index af575663f..a5541bec8 100644 --- a/src/increase/_utils/_utils.py +++ b/src/increase/_utils/_utils.py @@ -38,12 +38,15 @@ def _extract_items( path: Sequence[str], *, index: int, - # TODO: rename flattened_key: str | None, ) -> list[tuple[str, FileTypes]]: try: key = path[index] except IndexError: + if isinstance(obj, NotGiven): + # no value was provided - we can safely ignore + return [] + # We have exhausted the path, return the entry we found. if not isinstance(obj, bytes) and not isinstance(obj, tuple): raise RuntimeError( From b80e33c401127eaab5fd17385da21d3875577a66 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 6 Sep 2023 09:34:05 -0400 Subject: [PATCH 08/15] feat: fixes tests where an array has to have unique enum values (#111) --- .../api_resources/entities/test_beneficial_owners.py | 8 ++++---- tests/api_resources/test_card_disputes.py | 4 ++-- tests/api_resources/test_card_profiles.py | 8 ++++---- tests/api_resources/test_declined_transactions.py | 4 ++-- tests/api_resources/test_documents.py | 4 ++-- tests/api_resources/test_entities.py | 12 ++++++------ tests/api_resources/test_events.py | 4 ++-- tests/api_resources/test_external_accounts.py | 4 ++-- tests/api_resources/test_files.py | 4 ++-- tests/api_resources/test_pending_transactions.py | 12 ++++-------- tests/api_resources/test_transactions.py | 4 ++-- 11 files changed, 32 insertions(+), 36 deletions(-) diff --git a/tests/api_resources/entities/test_beneficial_owners.py b/tests/api_resources/entities/test_beneficial_owners.py index 43a839fbe..f3fa4cb3e 100644 --- a/tests/api_resources/entities/test_beneficial_owners.py +++ b/tests/api_resources/entities/test_beneficial_owners.py @@ -38,7 +38,7 @@ def test_method_create(self, client: Increase) -> None: "number": "xxxx", }, }, - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, entity_id="string", ) @@ -83,7 +83,7 @@ def test_method_create_with_all_params(self, client: Increase) -> None: }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, entity_id="string", ) @@ -150,7 +150,7 @@ async def test_method_create(self, client: AsyncIncrease) -> None: "number": "xxxx", }, }, - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, entity_id="string", ) @@ -195,7 +195,7 @@ async def test_method_create_with_all_params(self, client: AsyncIncrease) -> Non }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, entity_id="string", ) diff --git a/tests/api_resources/test_card_disputes.py b/tests/api_resources/test_card_disputes.py index b99ed59c8..3bc57a819 100644 --- a/tests/api_resources/test_card_disputes.py +++ b/tests/api_resources/test_card_disputes.py @@ -52,7 +52,7 @@ def test_method_list_with_all_params(self, client: Increase) -> None: }, cursor="string", limit=0, - status={"in": ["pending_reviewing", "pending_reviewing", "pending_reviewing"]}, + status={"in": ["pending_reviewing", "accepted", "rejected"]}, ) assert_matches_type(SyncPage[CardDispute], card_dispute, path=["response"]) @@ -93,6 +93,6 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: }, cursor="string", limit=0, - status={"in": ["pending_reviewing", "pending_reviewing", "pending_reviewing"]}, + status={"in": ["pending_reviewing", "accepted", "rejected"]}, ) assert_matches_type(AsyncPage[CardDispute], card_dispute, path=["response"]) diff --git a/tests/api_resources/test_card_profiles.py b/tests/api_resources/test_card_profiles.py index 502ad9dfb..a496c8299 100644 --- a/tests/api_resources/test_card_profiles.py +++ b/tests/api_resources/test_card_profiles.py @@ -76,8 +76,8 @@ def test_method_list_with_all_params(self, client: Increase) -> None: card_profile = client.card_profiles.list( cursor="string", limit=0, - physical_cards_status={"in": ["not_eligible", "not_eligible", "not_eligible"]}, - status={"in": ["pending", "pending", "pending"]}, + physical_cards_status={"in": ["not_eligible", "rejected", "pending_reviewing"]}, + status={"in": ["pending", "rejected", "active"]}, ) assert_matches_type(SyncPage[CardProfile], card_profile, path=["response"]) @@ -150,8 +150,8 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: card_profile = await client.card_profiles.list( cursor="string", limit=0, - physical_cards_status={"in": ["not_eligible", "not_eligible", "not_eligible"]}, - status={"in": ["pending", "pending", "pending"]}, + physical_cards_status={"in": ["not_eligible", "rejected", "pending_reviewing"]}, + status={"in": ["pending", "rejected", "active"]}, ) assert_matches_type(AsyncPage[CardProfile], card_profile, path=["response"]) diff --git a/tests/api_resources/test_declined_transactions.py b/tests/api_resources/test_declined_transactions.py index e521ed7aa..8a123fc46 100644 --- a/tests/api_resources/test_declined_transactions.py +++ b/tests/api_resources/test_declined_transactions.py @@ -37,7 +37,7 @@ def test_method_list(self, client: Increase) -> None: def test_method_list_with_all_params(self, client: Increase) -> None: declined_transaction = client.declined_transactions.list( account_id="string", - category={"in": ["ach_decline", "ach_decline", "ach_decline"]}, + category={"in": ["ach_decline", "card_decline", "check_decline"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -72,7 +72,7 @@ async def test_method_list(self, client: AsyncIncrease) -> None: async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: declined_transaction = await client.declined_transactions.list( account_id="string", - category={"in": ["ach_decline", "ach_decline", "ach_decline"]}, + category={"in": ["ach_decline", "card_decline", "check_decline"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), diff --git a/tests/api_resources/test_documents.py b/tests/api_resources/test_documents.py index 70b963a22..4efbc90da 100644 --- a/tests/api_resources/test_documents.py +++ b/tests/api_resources/test_documents.py @@ -36,7 +36,7 @@ def test_method_list(self, client: Increase) -> None: @parametrize def test_method_list_with_all_params(self, client: Increase) -> None: document = client.documents.list( - category={"in": ["form_1099_int", "form_1099_int", "form_1099_int"]}, + category={"in": ["form_1099_int", "proof_of_authorization", "company_information"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -70,7 +70,7 @@ async def test_method_list(self, client: AsyncIncrease) -> None: @parametrize async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: document = await client.documents.list( - category={"in": ["form_1099_int", "form_1099_int", "form_1099_int"]}, + category={"in": ["form_1099_int", "proof_of_authorization", "company_information"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), diff --git a/tests/api_resources/test_entities.py b/tests/api_resources/test_entities.py index 7615fcfde..276d83c20 100644 --- a/tests/api_resources/test_entities.py +++ b/tests/api_resources/test_entities.py @@ -83,7 +83,7 @@ def test_method_create_with_all_params(self, client: Increase) -> None: }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, { "individual": { @@ -121,7 +121,7 @@ def test_method_create_with_all_params(self, client: Increase) -> None: }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, { "individual": { @@ -159,7 +159,7 @@ def test_method_create_with_all_params(self, client: Increase) -> None: }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, ], }, @@ -598,7 +598,7 @@ async def test_method_create_with_all_params(self, client: AsyncIncrease) -> Non }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, { "individual": { @@ -636,7 +636,7 @@ async def test_method_create_with_all_params(self, client: AsyncIncrease) -> Non }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, { "individual": { @@ -674,7 +674,7 @@ async def test_method_create_with_all_params(self, client: AsyncIncrease) -> Non }, }, "company_title": "x", - "prongs": ["ownership", "ownership", "ownership"], + "prongs": ["ownership", "control"], }, ], }, diff --git a/tests/api_resources/test_events.py b/tests/api_resources/test_events.py index f3ae1cf16..fb0020ab8 100644 --- a/tests/api_resources/test_events.py +++ b/tests/api_resources/test_events.py @@ -37,7 +37,7 @@ def test_method_list(self, client: Increase) -> None: def test_method_list_with_all_params(self, client: Increase) -> None: event = client.events.list( associated_object_id="string", - category={"in": ["account.created", "account.created", "account.created"]}, + category={"in": ["account.created", "account.updated", "account_number.created"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -71,7 +71,7 @@ async def test_method_list(self, client: AsyncIncrease) -> None: async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: event = await client.events.list( associated_object_id="string", - category={"in": ["account.created", "account.created", "account.created"]}, + category={"in": ["account.created", "account.updated", "account_number.created"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), diff --git a/tests/api_resources/test_external_accounts.py b/tests/api_resources/test_external_accounts.py index c1c6c9c64..dbb8fc646 100644 --- a/tests/api_resources/test_external_accounts.py +++ b/tests/api_resources/test_external_accounts.py @@ -73,7 +73,7 @@ def test_method_list_with_all_params(self, client: Increase) -> None: cursor="string", limit=0, routing_number="xxxxxxxxx", - status={"in": ["active", "active", "active"]}, + status={"in": ["active", "archived"]}, ) assert_matches_type(SyncPage[ExternalAccount], external_account, path=["response"]) @@ -136,6 +136,6 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: cursor="string", limit=0, routing_number="xxxxxxxxx", - status={"in": ["active", "active", "active"]}, + status={"in": ["active", "archived"]}, ) assert_matches_type(AsyncPage[ExternalAccount], external_account, path=["response"]) diff --git a/tests/api_resources/test_files.py b/tests/api_resources/test_files.py index 78aae310c..4de508e6d 100644 --- a/tests/api_resources/test_files.py +++ b/tests/api_resources/test_files.py @@ -61,7 +61,7 @@ def test_method_list_with_all_params(self, client: Increase) -> None: }, cursor="string", limit=0, - purpose={"in": ["check_image_front", "check_image_front", "check_image_front"]}, + purpose={"in": ["check_image_front", "check_image_back", "mailed_check_image"]}, ) assert_matches_type(SyncPage[File], file, path=["response"]) @@ -111,6 +111,6 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: }, cursor="string", limit=0, - purpose={"in": ["check_image_front", "check_image_front", "check_image_front"]}, + purpose={"in": ["check_image_front", "check_image_back", "mailed_check_image"]}, ) assert_matches_type(AsyncPage[File], file, path=["response"]) diff --git a/tests/api_resources/test_pending_transactions.py b/tests/api_resources/test_pending_transactions.py index 59c4dee66..aa8ca5e7b 100644 --- a/tests/api_resources/test_pending_transactions.py +++ b/tests/api_resources/test_pending_transactions.py @@ -37,9 +37,7 @@ def test_method_list(self, client: Increase) -> None: def test_method_list_with_all_params(self, client: Increase) -> None: pending_transaction = client.pending_transactions.list( account_id="string", - category={ - "in": ["account_transfer_instruction", "account_transfer_instruction", "account_transfer_instruction"] - }, + category={"in": ["account_transfer_instruction", "ach_transfer_instruction", "card_authorization"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -50,7 +48,7 @@ def test_method_list_with_all_params(self, client: Increase) -> None: limit=0, route_id="string", source_id="string", - status={"in": ["pending", "pending", "pending"]}, + status={"in": ["pending", "complete"]}, ) assert_matches_type(SyncPage[PendingTransaction], pending_transaction, path=["response"]) @@ -76,9 +74,7 @@ async def test_method_list(self, client: AsyncIncrease) -> None: async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: pending_transaction = await client.pending_transactions.list( account_id="string", - category={ - "in": ["account_transfer_instruction", "account_transfer_instruction", "account_transfer_instruction"] - }, + category={"in": ["account_transfer_instruction", "ach_transfer_instruction", "card_authorization"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -89,6 +85,6 @@ async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: limit=0, route_id="string", source_id="string", - status={"in": ["pending", "pending", "pending"]}, + status={"in": ["pending", "complete"]}, ) assert_matches_type(AsyncPage[PendingTransaction], pending_transaction, path=["response"]) diff --git a/tests/api_resources/test_transactions.py b/tests/api_resources/test_transactions.py index 088f89d4c..6f2344c4f 100644 --- a/tests/api_resources/test_transactions.py +++ b/tests/api_resources/test_transactions.py @@ -37,7 +37,7 @@ def test_method_list(self, client: Increase) -> None: def test_method_list_with_all_params(self, client: Increase) -> None: transaction = client.transactions.list( account_id="string", - category={"in": ["account_transfer_intention", "account_transfer_intention", "account_transfer_intention"]}, + category={"in": ["account_transfer_intention", "ach_transfer_intention", "ach_transfer_rejection"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), @@ -72,7 +72,7 @@ async def test_method_list(self, client: AsyncIncrease) -> None: async def test_method_list_with_all_params(self, client: AsyncIncrease) -> None: transaction = await client.transactions.list( account_id="string", - category={"in": ["account_transfer_intention", "account_transfer_intention", "account_transfer_intention"]}, + category={"in": ["account_transfer_intention", "ach_transfer_intention", "ach_transfer_rejection"]}, created_at={ "after": parse_datetime("2019-12-27T18:11:19.117Z"), "before": parse_datetime("2019-12-27T18:11:19.117Z"), From cf9ce31ad44747295ca2627b194ad0acac26a1a6 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 6 Sep 2023 12:37:05 -0400 Subject: [PATCH 09/15] chore(internal): update base client (#112) --- src/increase/_base_client.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/increase/_base_client.py b/src/increase/_base_client.py index cf553de07..995511c20 100644 --- a/src/increase/_base_client.py +++ b/src/increase/_base_client.py @@ -24,7 +24,7 @@ overload, ) from functools import lru_cache -from typing_extensions import Literal, get_origin +from typing_extensions import Literal, get_args, get_origin import anyio import httpx @@ -458,6 +458,14 @@ def _serialize_multipartform(self, data: Mapping[object, object]) -> dict[str, o serialized[key] = value return serialized + def _extract_stream_chunk_type(self, stream_cls: type) -> type: + args = get_args(stream_cls) + if not args: + raise TypeError( + f"Expected stream_cls to have been given a generic type argument, e.g. Stream[Foo] but received {stream_cls}", + ) + return cast(type, args[0]) + def _process_response( self, *, @@ -793,7 +801,10 @@ def _request( raise APIConnectionError(request=request) from err if stream: - stream_cls = stream_cls or cast("type[_StreamT] | None", self._default_stream_cls) + if stream_cls: + return stream_cls(cast_to=self._extract_stream_chunk_type(stream_cls), response=response, client=self) + + stream_cls = cast("type[_StreamT] | None", self._default_stream_cls) if stream_cls is None: raise MissingStreamClassError() return stream_cls(cast_to=cast_to, response=response, client=self) @@ -1156,7 +1167,10 @@ async def _request( raise APIConnectionError(request=request) from err if stream: - stream_cls = stream_cls or cast("type[_AsyncStreamT] | None", self._default_stream_cls) + if stream_cls: + return stream_cls(cast_to=self._extract_stream_chunk_type(stream_cls), response=response, client=self) + + stream_cls = cast("type[_AsyncStreamT] | None", self._default_stream_cls) if stream_cls is None: raise MissingStreamClassError() return stream_cls(cast_to=cast_to, response=response, client=self) From 7adf2f73f7f1fbc4c52463120ea2895e0ea809d2 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 6 Sep 2023 13:58:55 -0400 Subject: [PATCH 10/15] chore(internal): minor update (#113) --- src/increase/_resource.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/increase/_resource.py b/src/increase/_resource.py index 642773029..fbb864af4 100644 --- a/src/increase/_resource.py +++ b/src/increase/_resource.py @@ -2,6 +2,8 @@ from __future__ import annotations +import time +import asyncio from typing import TYPE_CHECKING if TYPE_CHECKING: @@ -20,6 +22,9 @@ def __init__(self, client: Increase) -> None: self._delete = client.delete self._get_api_list = client.get_api_list + def _sleep(self, seconds: float) -> None: + time.sleep(seconds) + class AsyncAPIResource: _client: AsyncIncrease @@ -32,3 +37,6 @@ def __init__(self, client: AsyncIncrease) -> None: self._put = client.put self._delete = client.delete self._get_api_list = client.get_api_list + + async def _sleep(self, seconds: float) -> None: + await asyncio.sleep(seconds) From e43532404639f86c706d8adf0300ee4bdc49bd4b Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:22:00 -0400 Subject: [PATCH 11/15] docs(readme): add link to api.md (#114) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2d656dda1..6809ca4c2 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ pip install increase ## Usage +The full API of this library can be found in [api.md](https://www.github.com/increase/increase-python/blob/main/api.md). + ```python from increase import Increase From d44b0e211dbeecb349c7ac8b21d24bd66359db5c Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Thu, 7 Sep 2023 13:33:32 -0400 Subject: [PATCH 12/15] docs(api): add docstrings and refine enum types (#115) --- src/increase/resources/wire_transfers.py | 4 +- src/increase/types/bookkeeping_entry_set.py | 2 +- .../types/card_purchase_supplement.py | 4 +- src/increase/types/declined_transaction.py | 188 ++++++++- src/increase/types/entity.py | 2 +- src/increase/types/inbound_ach_transfer.py | 8 +- src/increase/types/pending_transaction.py | 8 +- src/increase/types/real_time_decision.py | 10 +- .../simulations/ach_transfer_simulation.py | 370 +++++++++++++++++- .../card_authorization_simulation.py | 196 +++++++++- ...ime_payments_transfer_simulation_result.py | 370 +++++++++++++++++- .../interest_payment_simulation_result.py | 182 ++++++++- .../simulations/wire_transfer_simulation.py | 182 ++++++++- src/increase/types/transaction.py | 182 ++++++++- 14 files changed, 1610 insertions(+), 98 deletions(-) diff --git a/src/increase/resources/wire_transfers.py b/src/increase/resources/wire_transfers.py index 787d5b0ca..ee76e9091 100644 --- a/src/increase/resources/wire_transfers.py +++ b/src/increase/resources/wire_transfers.py @@ -298,7 +298,7 @@ def reverse( Simulates the reversal of a [Wire Transfer](#wire-transfers) by the Federal Reserve due to error conditions. This will also create a [Transaction](#transaction) to account for the returned funds. This Wire - Transfer must first have a `status` of `complete`.' + Transfer must first have a `status` of `complete`. Args: wire_transfer_id: The identifier of the Wire Transfer you wish to reverse. @@ -654,7 +654,7 @@ async def reverse( Simulates the reversal of a [Wire Transfer](#wire-transfers) by the Federal Reserve due to error conditions. This will also create a [Transaction](#transaction) to account for the returned funds. This Wire - Transfer must first have a `status` of `complete`.' + Transfer must first have a `status` of `complete`. Args: wire_transfer_id: The identifier of the Wire Transfer you wish to reverse. diff --git a/src/increase/types/bookkeeping_entry_set.py b/src/increase/types/bookkeeping_entry_set.py index f73678ece..92344f400 100644 --- a/src/increase/types/bookkeeping_entry_set.py +++ b/src/increase/types/bookkeeping_entry_set.py @@ -28,7 +28,7 @@ class BookkeepingEntrySet(BaseModel): """The timestamp of the entry set.""" entries: List[Entry] - """The entries""" + """The entries.""" transaction_id: Optional[str] """The transaction identifier, if any.""" diff --git a/src/increase/types/card_purchase_supplement.py b/src/increase/types/card_purchase_supplement.py index 5be38cab2..1da909cda 100644 --- a/src/increase/types/card_purchase_supplement.py +++ b/src/increase/types/card_purchase_supplement.py @@ -149,7 +149,7 @@ class LineItem(BaseModel): """Sales tax rate for this line item.""" total_amount: Optional[int] - """Total amount of all line items""" + """Total amount of all line items.""" total_amount_currency: Optional[str] """ @@ -164,7 +164,7 @@ class LineItem(BaseModel): """The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the unit cost.""" unit_of_measure_code: Optional[str] - """Code indicating unit of measure (gallons, etc.)""" + """Code indicating unit of measure (gallons, etc.).""" class CardPurchaseSupplement(BaseModel): diff --git a/src/increase/types/declined_transaction.py b/src/increase/types/declined_transaction.py index 41bef2f82..3edc96e5a 100644 --- a/src/increase/types/declined_transaction.py +++ b/src/increase/types/declined_transaction.py @@ -164,7 +164,7 @@ class SourceCardDeclineNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -184,13 +184,13 @@ class SourceCardDeclineNetworkDetailsVisa(BaseModel): class SourceCardDeclineNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[SourceCardDeclineNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class SourceCardDecline(BaseModel): @@ -244,7 +244,7 @@ class SourceCardDecline(BaseModel): """The state the merchant resides in.""" network_details: SourceCardDeclineNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" physical_card_id: Optional[str] """ @@ -417,74 +417,242 @@ class SourceInternationalACHDecline(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ + + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. - foreign_exchange_indicator: str + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. - originating_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class SourceWireDecline(BaseModel): diff --git a/src/increase/types/entity.py b/src/increase/types/entity.py index 45c311088..a9843023e 100644 --- a/src/increase/types/entity.py +++ b/src/increase/types/entity.py @@ -458,7 +458,7 @@ class Trust(BaseModel): """The grantor of the trust. Will be present if the `category` is `revocable`.""" name: str - """The trust's name""" + """The trust's name.""" tax_identifier: Optional[str] """The Employer Identification Number (EIN) of the trust itself.""" diff --git a/src/increase/types/inbound_ach_transfer.py b/src/increase/types/inbound_ach_transfer.py index 7b0331c52..10cb921c7 100644 --- a/src/increase/types/inbound_ach_transfer.py +++ b/src/increase/types/inbound_ach_transfer.py @@ -40,7 +40,7 @@ class Decline(BaseModel): "transaction_not_allowed", "user_initiated", ] - """The reason for the transfer decline + """The reason for the transfer decline. - `ach_route_canceled` - The account number is canceled. - `ach_route_disabled` - The account number is disabled. @@ -68,10 +68,10 @@ class Decline(BaseModel): class NotificationOfChange(BaseModel): updated_account_number: Optional[str] - """The new account number provided in the notification of change""" + """The new account number provided in the notification of change.""" updated_routing_number: Optional[str] - """The new account number provided in the notification of change""" + """The new account number provided in the notification of change.""" class TransferReturn(BaseModel): @@ -85,7 +85,7 @@ class TransferReturn(BaseModel): "duplicate_entry", "corporate_customer_advised_not_authorized", ] - """The reason for the transfer return + """The reason for the transfer return. - `authorization_revoked_by_customer` - The customer no longer authorizes this transaction. The Nacha return code is R07. diff --git a/src/increase/types/pending_transaction.py b/src/increase/types/pending_transaction.py index 530ce2f04..7f126aff4 100644 --- a/src/increase/types/pending_transaction.py +++ b/src/increase/types/pending_transaction.py @@ -122,7 +122,7 @@ class SourceCardAuthorizationNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -142,13 +142,13 @@ class SourceCardAuthorizationNetworkDetailsVisa(BaseModel): class SourceCardAuthorizationNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[SourceCardAuthorizationNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class SourceCardAuthorization(BaseModel): @@ -208,7 +208,7 @@ class SourceCardAuthorization(BaseModel): """The merchant descriptor of the merchant the card is transacting with.""" network_details: SourceCardAuthorizationNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" pending_transaction_id: Optional[str] """The identifier of the Pending Transaction associated with this Transaction.""" diff --git a/src/increase/types/real_time_decision.py b/src/increase/types/real_time_decision.py index b78b6cec4..23a52e117 100644 --- a/src/increase/types/real_time_decision.py +++ b/src/increase/types/real_time_decision.py @@ -83,7 +83,7 @@ class CardAuthorizationNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -103,13 +103,13 @@ class CardAuthorizationNetworkDetailsVisa(BaseModel): class CardAuthorizationNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[CardAuthorizationNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class CardAuthorizationRequestDetailsIncrementalAuthorization(BaseModel): @@ -127,7 +127,7 @@ class CardAuthorizationRequestDetails(BaseModel): category: Literal["initial_authorization", "incremental_authorization"] """ The type of this request (e.g., an initial authorization or an incremental - authorization.) + authorization). - `initial_authorization` - A regular, standalone authorization. - `incremental_authorization` - An incremental request to increase the amount of @@ -183,7 +183,7 @@ class CardAuthorization(BaseModel): """The merchant descriptor of the merchant the card is transacting with.""" network_details: CardAuthorizationNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" physical_card_id: Optional[str] """ diff --git a/src/increase/types/simulations/ach_transfer_simulation.py b/src/increase/types/simulations/ach_transfer_simulation.py index a3740ea64..256088348 100644 --- a/src/increase/types/simulations/ach_transfer_simulation.py +++ b/src/increase/types/simulations/ach_transfer_simulation.py @@ -209,7 +209,7 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -229,13 +229,13 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): class DeclinedTransactionSourceCardDeclineNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[DeclinedTransactionSourceCardDeclineNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class DeclinedTransactionSourceCardDecline(BaseModel): @@ -289,7 +289,7 @@ class DeclinedTransactionSourceCardDecline(BaseModel): """The state the merchant resides in.""" network_details: DeclinedTransactionSourceCardDeclineNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" physical_card_id: Optional[str] """ @@ -462,74 +462,242 @@ class DeclinedTransactionSourceInternationalACHDecline(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class DeclinedTransactionSourceWireDecline(BaseModel): @@ -2372,74 +2540,242 @@ class TransactionSourceInboundInternationalACHTransfer(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): @@ -2478,7 +2814,7 @@ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): """Additional information included with the transfer.""" transaction_identification: str - """The Real-Time Payments network identification of the transfer""" + """The Real-Time Payments network identification of the transfer.""" class TransactionSourceInboundWireDrawdownPayment(BaseModel): diff --git a/src/increase/types/simulations/card_authorization_simulation.py b/src/increase/types/simulations/card_authorization_simulation.py index fe479b5c5..f7825c50b 100644 --- a/src/increase/types/simulations/card_authorization_simulation.py +++ b/src/increase/types/simulations/card_authorization_simulation.py @@ -177,7 +177,7 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -197,13 +197,13 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): class DeclinedTransactionSourceCardDeclineNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[DeclinedTransactionSourceCardDeclineNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class DeclinedTransactionSourceCardDecline(BaseModel): @@ -257,7 +257,7 @@ class DeclinedTransactionSourceCardDecline(BaseModel): """The state the merchant resides in.""" network_details: DeclinedTransactionSourceCardDeclineNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" physical_card_id: Optional[str] """ @@ -430,74 +430,242 @@ class DeclinedTransactionSourceInternationalACHDecline(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ + + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. - foreign_exchange_indicator: str + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. - originating_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class DeclinedTransactionSourceWireDecline(BaseModel): @@ -817,7 +985,7 @@ class PendingTransactionSourceCardAuthorizationNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -837,13 +1005,13 @@ class PendingTransactionSourceCardAuthorizationNetworkDetailsVisa(BaseModel): class PendingTransactionSourceCardAuthorizationNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[PendingTransactionSourceCardAuthorizationNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class PendingTransactionSourceCardAuthorization(BaseModel): @@ -903,7 +1071,7 @@ class PendingTransactionSourceCardAuthorization(BaseModel): """The merchant descriptor of the merchant the card is transacting with.""" network_details: PendingTransactionSourceCardAuthorizationNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" pending_transaction_id: Optional[str] """The identifier of the Pending Transaction associated with this Transaction.""" diff --git a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py index 15df0fec0..6d9593d03 100644 --- a/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py +++ b/src/increase/types/simulations/inbound_real_time_payments_transfer_simulation_result.py @@ -209,7 +209,7 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): ] """ The method used to enter the cardholder's primary account number and card - expiration date + expiration date. - `unknown` - Unknown - `manual` - Manual key entry @@ -229,13 +229,13 @@ class DeclinedTransactionSourceCardDeclineNetworkDetailsVisa(BaseModel): class DeclinedTransactionSourceCardDeclineNetworkDetails(BaseModel): category: Literal["visa"] - """The payment network used to process this card authorization + """The payment network used to process this card authorization. - `visa` - Visa """ visa: Optional[DeclinedTransactionSourceCardDeclineNetworkDetailsVisa] - """Fields specific to the `visa` network""" + """Fields specific to the `visa` network.""" class DeclinedTransactionSourceCardDecline(BaseModel): @@ -289,7 +289,7 @@ class DeclinedTransactionSourceCardDecline(BaseModel): """The state the merchant resides in.""" network_details: DeclinedTransactionSourceCardDeclineNetworkDetails - """Fields specific to the `network`""" + """Fields specific to the `network`.""" physical_card_id: Optional[str] """ @@ -462,74 +462,242 @@ class DeclinedTransactionSourceInternationalACHDecline(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class DeclinedTransactionSourceWireDecline(BaseModel): @@ -2372,74 +2540,242 @@ class TransactionSourceInboundInternationalACHTransfer(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): @@ -2478,7 +2814,7 @@ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): """Additional information included with the transfer.""" transaction_identification: str - """The Real-Time Payments network identification of the transfer""" + """The Real-Time Payments network identification of the transfer.""" class TransactionSourceInboundWireDrawdownPayment(BaseModel): diff --git a/src/increase/types/simulations/interest_payment_simulation_result.py b/src/increase/types/simulations/interest_payment_simulation_result.py index 0b23d8321..f6f085397 100644 --- a/src/increase/types/simulations/interest_payment_simulation_result.py +++ b/src/increase/types/simulations/interest_payment_simulation_result.py @@ -1678,74 +1678,242 @@ class TransactionSourceInboundInternationalACHTransfer(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): @@ -1784,7 +1952,7 @@ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): """Additional information included with the transfer.""" transaction_identification: str - """The Real-Time Payments network identification of the transfer""" + """The Real-Time Payments network identification of the transfer.""" class TransactionSourceInboundWireDrawdownPayment(BaseModel): diff --git a/src/increase/types/simulations/wire_transfer_simulation.py b/src/increase/types/simulations/wire_transfer_simulation.py index 59f57362f..96052c5d3 100644 --- a/src/increase/types/simulations/wire_transfer_simulation.py +++ b/src/increase/types/simulations/wire_transfer_simulation.py @@ -1678,74 +1678,242 @@ class TransactionSourceInboundInternationalACHTransfer(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): @@ -1784,7 +1952,7 @@ class TransactionSourceInboundRealTimePaymentsTransferConfirmation(BaseModel): """Additional information included with the transfer.""" transaction_identification: str - """The Real-Time Payments network identification of the transfer""" + """The Real-Time Payments network identification of the transfer.""" class TransactionSourceInboundWireDrawdownPayment(BaseModel): diff --git a/src/increase/types/transaction.py b/src/increase/types/transaction.py index 73a65d720..51c95977c 100644 --- a/src/increase/types/transaction.py +++ b/src/increase/types/transaction.py @@ -1677,74 +1677,242 @@ class SourceInboundInternationalACHTransfer(BaseModel): """ destination_country_code: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the destination country. + """ destination_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + destination bank account. + """ - foreign_exchange_indicator: str + foreign_exchange_indicator: Literal["fixed_to_variable", "variable_to_fixed", "fixed_to_fixed"] + """A description of how the foreign exchange rate was calculated. + + - `fixed_to_variable` - The originator chose an amount in their own currency. + The settled amount in USD was converted using the exchange rate. + - `variable_to_fixed` - The originator chose an amount to settle in USD. The + originator's amount was variable; known only after the foreign exchange + conversion. + - `fixed_to_fixed` - The amount was originated and settled as a fixed amount in + USD. There is no foreign exchange conversion. + """ foreign_exchange_reference: Optional[str] + """ + Depending on the `foreign_exchange_reference_indicator`, an exchange rate or a + reference to a well-known rate. + """ + + foreign_exchange_reference_indicator: Literal["foreign_exchange_rate", "foreign_exchange_reference_number", "blank"] + """ + An instruction of how to interpret the `foreign_exchange_reference` field for + this Transaction. - foreign_exchange_reference_indicator: str + - `foreign_exchange_rate` - The ACH file contains a foreign exchange rate. + - `foreign_exchange_reference_number` - The ACH file contains a reference to a + well-known foreign exchange rate. + - `blank` - There is no foreign exchange for this transfer, so the + `foreign_exchange_reference` field is blank. + """ foreign_payment_amount: int + """The amount in the minor unit of the foreign payment currency. - foreign_trace_number: Optional[str] + For dollars, for example, this is cents. + """ - international_transaction_type_code: str + foreign_trace_number: Optional[str] + """A reference number in the foreign banking infrastructure.""" + + international_transaction_type_code: Literal[ + "annuity", + "business_or_commercial", + "deposit", + "loan", + "miscellaneous", + "mortgage", + "pension", + "remittance", + "rent_or_lease", + "salary_or_payroll", + "tax", + "accounts_receivable", + "back_office_conversion", + "machine_transfer", + "point_of_purchase", + "point_of_sale", + "represented_check", + "shared_network_transaction", + "telphone_initiated", + "internet_initiated", + ] + """The type of transfer. Set by the originator. + + - `annuity` - Sent as `ANN` in the Nacha file. + - `business_or_commercial` - Sent as `BUS` in the Nacha file. + - `deposit` - Sent as `DEP` in the Nacha file. + - `loan` - Sent as `LOA` in the Nacha file. + - `miscellaneous` - Sent as `MIS` in the Nacha file. + - `mortgage` - Sent as `MOR` in the Nacha file. + - `pension` - Sent as `PEN` in the Nacha file. + - `remittance` - Sent as `REM` in the Nacha file. + - `rent_or_lease` - Sent as `RLS` in the Nacha file. + - `salary_or_payroll` - Sent as `SAL` in the Nacha file. + - `tax` - Sent as `TAX` in the Nacha file. + - `accounts_receivable` - Sent as `ARC` in the Nacha file. + - `back_office_conversion` - Sent as `BOC` in the Nacha file. + - `machine_transfer` - Sent as `MTE` in the Nacha file. + - `point_of_purchase` - Sent as `POP` in the Nacha file. + - `point_of_sale` - Sent as `POS` in the Nacha file. + - `represented_check` - Sent as `RCK` in the Nacha file. + - `shared_network_transaction` - Sent as `SHR` in the Nacha file. + - `telphone_initiated` - Sent as `TEL` in the Nacha file. + - `internet_initiated` - Sent as `WEB` in the Nacha file. + """ originating_currency_code: str + """ + The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code for the + originating bank account. + """ originating_depository_financial_institution_branch_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originating branch country. + """ originating_depository_financial_institution_id: str + """An identifier for the originating bank. + + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ - originating_depository_financial_institution_id_qualifier: str + originating_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `originating_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ originating_depository_financial_institution_name: str + """The name of the originating bank. + + Sometimes this will refer to an American bank and obscure the correspondent + foreign bank. + """ originator_city: str + """A portion of the originator address. This may be incomplete.""" originator_company_entry_description: str + """A description field set by the originator.""" originator_country: str + """A portion of the originator address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the originator country. + """ originator_identification: str + """An identifier for the originating company. + + This is generally stable across multiple ACH transfers. + """ originator_name: str + """Either the name of the originator or an intermediary money transmitter.""" originator_postal_code: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_state_or_province: Optional[str] + """A portion of the originator address. This may be incomplete.""" originator_street_address: str + """A portion of the originator address. This may be incomplete.""" payment_related_information: Optional[str] + """A description field set by the originator.""" payment_related_information2: Optional[str] + """A description field set by the originator.""" receiver_city: str + """A portion of the receiver address. This may be incomplete.""" receiver_country: str + """A portion of the receiver address. + + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiver country. + """ receiver_identification_number: Optional[str] + """An identification number the originator uses for the receiver.""" receiver_postal_code: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_state_or_province: Optional[str] + """A portion of the receiver address. This may be incomplete.""" receiver_street_address: str + """A portion of the receiver address. This may be incomplete.""" receiving_company_or_individual_name: str + """The name of the receiver of the transfer. This is not verified by Increase.""" receiving_depository_financial_institution_country: str + """ + The [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Alpha-2 + country code of the receiving bank country. + """ receiving_depository_financial_institution_id: str + """An identifier for the receiving bank. - receiving_depository_financial_institution_id_qualifier: str + One of an International Bank Account Number (IBAN) bank identifier, SWIFT Bank + Identification Code (BIC), or a domestic identifier like a US Routing Number. + """ + + receiving_depository_financial_institution_id_qualifier: Literal[ + "national_clearing_system_number", "bic_code", "iban" + ] + """ + An instruction of how to interpret the + `receiving_depository_financial_institution_id` field for this Transaction. + + - `national_clearing_system_number` - A domestic clearing system number. In the + US, for example, this is the American Banking Association (ABA) routing + number. + - `bic_code` - The SWIFT Bank Identifier Code (BIC) of the bank. + - `iban` - An International Bank Account Number. + """ receiving_depository_financial_institution_name: str + """The name of the receiving bank, as set by the sending financial institution.""" trace_number: str + """ + A 15 digit number recorded in the Nacha file and available to both the + originating and receiving bank. Along with the amount, date, and originating + routing number, this can be used to identify the ACH transfer at either bank. + ACH trace numbers are not unique, but are + [used to correlate returns](https://increase.com/documentation/ach#returns). + """ class SourceInboundRealTimePaymentsTransferConfirmation(BaseModel): @@ -1783,7 +1951,7 @@ class SourceInboundRealTimePaymentsTransferConfirmation(BaseModel): """Additional information included with the transfer.""" transaction_identification: str - """The Real-Time Payments network identification of the transfer""" + """The Real-Time Payments network identification of the transfer.""" class SourceInboundWireDrawdownPayment(BaseModel): From e940de30aa7eedf5ff01c4e2df35258432b58b23 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Fri, 8 Sep 2023 17:37:34 +0100 Subject: [PATCH 13/15] chore(internal): updates (#116) --- pyproject.toml | 1 + src/increase/_compat.py | 12 +++++++++--- src/increase/_types.py | 3 ++- src/increase/_utils/__init__.py | 1 + src/increase/_utils/_utils.py | 6 +++++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7665c93f2..9001ea113 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,7 @@ nox = "^2023.4.22" nox-poetry = "^1.0.3" + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" diff --git a/src/increase/_compat.py b/src/increase/_compat.py index f8e73e40a..fed1df050 100644 --- a/src/increase/_compat.py +++ b/src/increase/_compat.py @@ -120,10 +120,10 @@ def model_copy(model: _ModelT) -> _ModelT: return model.copy() # type: ignore -def model_json(model: pydantic.BaseModel) -> str: +def model_json(model: pydantic.BaseModel, *, indent: int | None = None) -> str: if PYDANTIC_V2: - return model.model_dump_json() - return model.json() # type: ignore + return model.model_dump_json(indent=indent) + return model.json(indent=indent) # type: ignore def model_dump(model: pydantic.BaseModel) -> dict[str, Any]: @@ -132,6 +132,12 @@ def model_dump(model: pydantic.BaseModel) -> dict[str, Any]: return cast("dict[str, Any]", model.dict()) # pyright: ignore[reportDeprecated, reportUnnecessaryCast] +def model_parse(model: type[_ModelT], data: Any) -> _ModelT: + if PYDANTIC_V2: + return model.model_validate(data) + return model.parse_obj(data) # pyright: ignore[reportDeprecated] + + # generic models if TYPE_CHECKING: diff --git a/src/increase/_types.py b/src/increase/_types.py index 09637bd74..be81ef400 100644 --- a/src/increase/_types.py +++ b/src/increase/_types.py @@ -31,7 +31,8 @@ _T = TypeVar("_T") # Approximates httpx internal ProxiesTypes and RequestFiles types -ProxiesTypes = Union[str, Proxy, Dict[str, Union[None, str, Proxy]]] +ProxiesDict = Dict[str, Union[None, str, Proxy]] +ProxiesTypes = Union[str, Proxy, ProxiesDict] FileContent = Union[IO[bytes], bytes] FileTypes = Union[ # file (or bytes) diff --git a/src/increase/_utils/__init__.py b/src/increase/_utils/__init__.py index 05a82c731..b45dc1b1b 100644 --- a/src/increase/_utils/__init__.py +++ b/src/increase/_utils/__init__.py @@ -1,6 +1,7 @@ from ._utils import flatten as flatten from ._utils import is_dict as is_dict from ._utils import is_list as is_list +from ._utils import is_given as is_given from ._utils import is_mapping as is_mapping from ._utils import parse_date as parse_date from ._utils import coerce_float as coerce_float diff --git a/src/increase/_utils/_utils.py b/src/increase/_utils/_utils.py index a5541bec8..dde4b457d 100644 --- a/src/increase/_utils/_utils.py +++ b/src/increase/_utils/_utils.py @@ -7,7 +7,7 @@ from pathlib import Path from typing_extensions import Required, Annotated, TypeGuard, get_args, get_origin -from .._types import NotGiven, FileTypes +from .._types import NotGiven, FileTypes, NotGivenOr from .._compat import is_union as _is_union from .._compat import parse_date as parse_date from .._compat import parse_datetime as parse_datetime @@ -100,6 +100,10 @@ def _extract_items( return [] +def is_given(obj: NotGivenOr[_T]) -> TypeGuard[_T]: + return not isinstance(obj, NotGiven) + + # Type safe methods for narrowing types with TypeVars. # The default narrowing for isinstance(obj, dict) is dict[unknown, unknown], # however this cause Pyright to rightfully report errors. As we know we don't From 75f249e2a389b45a7b6e2d120344d0897525129a Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Mon, 11 Sep 2023 06:25:17 -0500 Subject: [PATCH 14/15] chore(internal): update pyright (#117) --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- src/increase/_models.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 888bd24ed..ffedd33d6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -697,14 +697,14 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pyright" -version = "1.1.318" +version = "1.1.326" description = "Command line wrapper for pyright" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pyright-1.1.318-py3-none-any.whl", hash = "sha256:056c1b2e711c3526e32919de1684ae599d34b7ec27e94398858a43f56ac9ba9b"}, - {file = "pyright-1.1.318.tar.gz", hash = "sha256:69dcf9c32d5be27d531750de627e76a7cadc741d333b547c09044278b508db7b"}, + {file = "pyright-1.1.326-py3-none-any.whl", hash = "sha256:f3c5047465138558d3d106a9464cc097cf2c3611da6edcf5b535cc1fdebd45db"}, + {file = "pyright-1.1.326.tar.gz", hash = "sha256:cecbe026b14034ba0750db605718a8c2605552387c5772dfaf7f3e632cb7212a"}, ] [package.dependencies] @@ -1054,4 +1054,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "a5044d71110571fb09eee526f26aca0906007643da1b1853cadb845444e3f829" +content-hash = "f3a5042311972f24c3fb3c59a448c6f3ac3deec9c788271f0b726fbeb7c58250" diff --git a/pyproject.toml b/pyproject.toml index 9001ea113..333c92591 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ distro = ">= 1.7.0, < 2" [tool.poetry.group.dev.dependencies] -pyright = "1.1.318" +pyright = "1.1.326" mypy = "1.4.1" black = "23.3.0" respx = "0.19.2" diff --git a/src/increase/_models.py b/src/increase/_models.py index 164987a74..296d36c0f 100644 --- a/src/increase/_models.py +++ b/src/increase/_models.py @@ -215,7 +215,7 @@ def validate_type(*, type_: type[_T], value: object) -> _T: if inspect.isclass(type_) and issubclass(type_, pydantic.BaseModel): return cast(_T, parse_obj(type_, value)) - return _validate_non_model_type(type_=type_, value=value) + return cast(_T, _validate_non_model_type(type_=type_, value=value)) # our use of subclasssing here causes weirdness for type checkers, From 2266ae751effa04abc25c26b45228217567d6294 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Mon, 11 Sep 2023 06:25:32 -0500 Subject: [PATCH 15/15] chore(next => main): release 0.12.4 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- src/increase/_version.py | 2 +- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index dfa233e32..969752a51 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.12.3" + ".": "0.12.4" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f25eafc0..cab42efe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## 0.12.4 (2023-09-11) + +Full Changelog: [v0.12.3...v0.12.4](https://github.com/increase/increase-python/compare/v0.12.3...v0.12.4) + +### Features + +* **api:** add bank_of_first_deposit_routing_number and transfer_id properties ([#103](https://github.com/increase/increase-python/issues/103)) ([9409881](https://github.com/increase/increase-python/commit/9409881165df777f9ad62edb2765632c3d710f12)) +* **api:** add Update Address and Create Notification Change endpoints ([#109](https://github.com/increase/increase-python/issues/109)) ([feea47b](https://github.com/increase/increase-python/commit/feea47b868d7aec4defe0877bb57de1b0540db83)) +* fixes tests where an array has to have unique enum values ([#111](https://github.com/increase/increase-python/issues/111)) ([b80e33c](https://github.com/increase/increase-python/commit/b80e33c401127eaab5fd17385da21d3875577a66)) + + +### Bug Fixes + +* **client:** properly handle optional file params ([#110](https://github.com/increase/increase-python/issues/110)) ([f6ccd02](https://github.com/increase/increase-python/commit/f6ccd0252554f20f57ce68a92b055350907875ac)) + + +### Chores + +* **internal:** add `pydantic.generics` import for compatibility ([#105](https://github.com/increase/increase-python/issues/105)) ([1ab67a5](https://github.com/increase/increase-python/commit/1ab67a51b1710075bd940f69ebd6a844bb92d676)) +* **internal:** minor formatting changes ([#108](https://github.com/increase/increase-python/issues/108)) ([210a1b1](https://github.com/increase/increase-python/commit/210a1b124e56dbc586600feff12ce4de4904e4d7)) +* **internal:** minor update ([#113](https://github.com/increase/increase-python/issues/113)) ([7adf2f7](https://github.com/increase/increase-python/commit/7adf2f73f7f1fbc4c52463120ea2895e0ea809d2)) +* **internal:** update base client ([#112](https://github.com/increase/increase-python/issues/112)) ([cf9ce31](https://github.com/increase/increase-python/commit/cf9ce31ad44747295ca2627b194ad0acac26a1a6)) +* **internal:** update pyright ([#117](https://github.com/increase/increase-python/issues/117)) ([75f249e](https://github.com/increase/increase-python/commit/75f249e2a389b45a7b6e2d120344d0897525129a)) +* **internal:** updates ([#116](https://github.com/increase/increase-python/issues/116)) ([e940de3](https://github.com/increase/increase-python/commit/e940de30aa7eedf5ff01c4e2df35258432b58b23)) + + +### Documentation + +* **api:** add docstrings and refine enum types ([#115](https://github.com/increase/increase-python/issues/115)) ([d44b0e2](https://github.com/increase/increase-python/commit/d44b0e211dbeecb349c7ac8b21d24bd66359db5c)) +* **readme:** add link to api.md ([#114](https://github.com/increase/increase-python/issues/114)) ([e435324](https://github.com/increase/increase-python/commit/e43532404639f86c706d8adf0300ee4bdc49bd4b)) +* **readme:** reference pydantic helpers ([#107](https://github.com/increase/increase-python/issues/107)) ([72ef120](https://github.com/increase/increase-python/commit/72ef120f8297770a71c2a87663cf5108316d0f9e)) + ## 0.12.3 (2023-08-29) Full Changelog: [v0.12.2...v0.12.3](https://github.com/Increase/increase-python/compare/v0.12.2...v0.12.3) diff --git a/pyproject.toml b/pyproject.toml index 333c92591..2388ea609 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "increase" -version = "0.12.3" +version = "0.12.4" description = "Client library for the increase API" readme = "README.md" authors = ["Increase "] diff --git a/src/increase/_version.py b/src/increase/_version.py index 9f9de5f45..be71e4ebb 100644 --- a/src/increase/_version.py +++ b/src/increase/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. __title__ = "increase" -__version__ = "0.12.3" # x-release-please-version +__version__ = "0.12.4" # x-release-please-version