Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.37.1"
".": "1.38.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 46
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-0105d239fcaf84750c886dfa6c2cfbf2b2087f89a48f8827c4cbe28479ebfb13.yml
openapi_spec_hash: 34895c3d3c137fb9f5a019ac5370afbb
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-b817e7a30a6366c063a8c9a334d5be281eb8d93e21acc8c8219d3bdc95043deb.yml
openapi_spec_hash: d4cc4a5cba9f13986e38d148d330aa00
config_hash: 5c64f384746e7570c10f19fe241062a7
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 1.38.0 (2025-11-03)

Full Changelog: [v1.37.1...v1.38.0](https://github.com/Finch-API/finch-api-python/compare/v1.37.1...v1.38.0)

### Features

* **api:** api update ([08974d3](https://github.com/Finch-API/finch-api-python/commit/08974d35364590545c1cb9865f9cde672dac4a45))


### Chores

* **internal:** grammar fix (it's -> its) ([2e947bc](https://github.com/Finch-API/finch-api-python/commit/2e947bc6d5917242e878e9863cfcd777059bf345))

## 1.37.1 (2025-10-31)

Full Changelog: [v1.37.0...v1.37.1](https://github.com/Finch-API/finch-api-python/compare/v1.37.0...v1.37.1)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "finch-api"
version = "1.37.1"
version = "1.38.0"
description = "The official Python library for the Finch API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/finch/_utils/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def is_given(obj: _T | NotGiven | Omit) -> TypeGuard[_T]:
# 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
# care about the contained types we can safely use `object` in it's place.
# care about the contained types we can safely use `object` in its place.
#
# There are two separate functions defined, `is_*` and `is_*_t` for different use cases.
# `is_*` is for when you're dealing with an unknown input
Expand Down
2 changes: 1 addition & 1 deletion src/finch/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "finch"
__version__ = "1.37.1" # x-release-please-version
__version__ = "1.38.0" # x-release-please-version
64 changes: 33 additions & 31 deletions src/finch/resources/connect/sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import httpx

from ... import _legacy_response
from ..._types import Body, Query, Headers, NotGiven, not_given
from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
from ..._utils import maybe_transform, async_maybe_transform
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
Expand Down Expand Up @@ -44,12 +44,8 @@ def with_streaming_response(self) -> SessionsWithStreamingResponse:
def new(
self,
*,
customer_email: Optional[str],
customer_id: str,
customer_name: str,
integration: Optional[session_new_params.Integration],
manual: Optional[bool],
minutes_to_expire: Optional[float],
products: List[
Literal[
"benefits",
Expand All @@ -64,8 +60,12 @@ def new(
"ssn",
]
],
redirect_uri: Optional[str],
sandbox: Optional[Literal["finch", "provider"]],
customer_email: Optional[str] | Omit = omit,
integration: Optional[session_new_params.Integration] | Omit = omit,
manual: Optional[bool] | Omit = omit,
minutes_to_expire: Optional[float] | Omit = omit,
redirect_uri: Optional[str] | Omit = omit,
sandbox: Optional[Literal["finch", "provider"]] | Omit = omit,
# 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,
Expand All @@ -77,21 +77,21 @@ def new(
Create a new connect session for an employer

Args:
customer_email: Email address of the customer

customer_id: Unique identifier for the customer

customer_name: Name of the customer

products: The Finch products to request access to

customer_email: Email address of the customer

integration: Integration configuration for the connect session

manual: Enable manual authentication mode

minutes_to_expire: The number of minutes until the session expires (defaults to 129,600, which is
90 days)

products: The Finch products to request access to

redirect_uri: The URI to redirect to after the Connect flow is completed

sandbox: Sandbox mode for testing
Expand All @@ -108,13 +108,13 @@ def new(
"/connect/sessions",
body=maybe_transform(
{
"customer_email": customer_email,
"customer_id": customer_id,
"customer_name": customer_name,
"products": products,
"customer_email": customer_email,
"integration": integration,
"manual": manual,
"minutes_to_expire": minutes_to_expire,
"products": products,
"redirect_uri": redirect_uri,
"sandbox": sandbox,
},
Expand All @@ -130,7 +130,7 @@ def reauthenticate(
self,
*,
connection_id: str,
minutes_to_expire: int,
minutes_to_expire: int | Omit = omit,
products: Optional[
List[
Literal[
Expand All @@ -146,8 +146,9 @@ def reauthenticate(
"ssn",
]
]
],
redirect_uri: Optional[str],
]
| Omit = omit,
redirect_uri: Optional[str] | Omit = omit,
# 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,
Expand Down Expand Up @@ -217,12 +218,8 @@ def with_streaming_response(self) -> AsyncSessionsWithStreamingResponse:
async def new(
self,
*,
customer_email: Optional[str],
customer_id: str,
customer_name: str,
integration: Optional[session_new_params.Integration],
manual: Optional[bool],
minutes_to_expire: Optional[float],
products: List[
Literal[
"benefits",
Expand All @@ -237,8 +234,12 @@ async def new(
"ssn",
]
],
redirect_uri: Optional[str],
sandbox: Optional[Literal["finch", "provider"]],
customer_email: Optional[str] | Omit = omit,
integration: Optional[session_new_params.Integration] | Omit = omit,
manual: Optional[bool] | Omit = omit,
minutes_to_expire: Optional[float] | Omit = omit,
redirect_uri: Optional[str] | Omit = omit,
sandbox: Optional[Literal["finch", "provider"]] | Omit = omit,
# 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,
Expand All @@ -250,21 +251,21 @@ async def new(
Create a new connect session for an employer

Args:
customer_email: Email address of the customer

customer_id: Unique identifier for the customer

customer_name: Name of the customer

products: The Finch products to request access to

customer_email: Email address of the customer

integration: Integration configuration for the connect session

manual: Enable manual authentication mode

minutes_to_expire: The number of minutes until the session expires (defaults to 129,600, which is
90 days)

products: The Finch products to request access to

redirect_uri: The URI to redirect to after the Connect flow is completed

sandbox: Sandbox mode for testing
Expand All @@ -281,13 +282,13 @@ async def new(
"/connect/sessions",
body=await async_maybe_transform(
{
"customer_email": customer_email,
"customer_id": customer_id,
"customer_name": customer_name,
"products": products,
"customer_email": customer_email,
"integration": integration,
"manual": manual,
"minutes_to_expire": minutes_to_expire,
"products": products,
"redirect_uri": redirect_uri,
"sandbox": sandbox,
},
Expand All @@ -303,7 +304,7 @@ async def reauthenticate(
self,
*,
connection_id: str,
minutes_to_expire: int,
minutes_to_expire: int | Omit = omit,
products: Optional[
List[
Literal[
Expand All @@ -319,8 +320,9 @@ async def reauthenticate(
"ssn",
]
]
],
redirect_uri: Optional[str],
]
| Omit = omit,
redirect_uri: Optional[str] | Omit = omit,
# 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,
Expand Down
42 changes: 21 additions & 21 deletions src/finch/types/connect/session_new_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,12 @@


class SessionNewParams(TypedDict, total=False):
customer_email: Required[Optional[str]]
"""Email address of the customer"""

customer_id: Required[str]
"""Unique identifier for the customer"""

customer_name: Required[str]
"""Name of the customer"""

integration: Required[Optional[Integration]]
"""Integration configuration for the connect session"""

manual: Required[Optional[bool]]
"""Enable manual authentication mode"""

minutes_to_expire: Required[Optional[float]]
"""
The number of minutes until the session expires (defaults to 129,600, which is
90 days)
"""

products: Required[
List[
Literal[
Expand All @@ -48,16 +33,31 @@ class SessionNewParams(TypedDict, total=False):
]
"""The Finch products to request access to"""

redirect_uri: Required[Optional[str]]
customer_email: Optional[str]
"""Email address of the customer"""

integration: Optional[Integration]
"""Integration configuration for the connect session"""

manual: Optional[bool]
"""Enable manual authentication mode"""

minutes_to_expire: Optional[float]
"""
The number of minutes until the session expires (defaults to 129,600, which is
90 days)
"""

redirect_uri: Optional[str]
"""The URI to redirect to after the Connect flow is completed"""

sandbox: Required[Optional[Literal["finch", "provider"]]]
sandbox: Optional[Literal["finch", "provider"]]
"""Sandbox mode for testing"""


class Integration(TypedDict, total=False):
auth_method: Required[Optional[Literal["assisted", "credential", "oauth", "api_token"]]]
"""The authentication method to use"""

provider: Required[Optional[str]]
provider: Required[str]
"""The provider to integrate with"""

auth_method: Optional[Literal["assisted", "credential", "oauth", "api_token"]]
"""The authentication method to use"""
32 changes: 15 additions & 17 deletions src/finch/types/connect/session_reauthenticate_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,29 @@ class SessionReauthenticateParams(TypedDict, total=False):
connection_id: Required[str]
"""The ID of the existing connection to reauthenticate"""

minutes_to_expire: Required[int]
minutes_to_expire: int
"""
The number of minutes until the session expires (defaults to 43,200, which is 30
days)
"""

products: Required[
Optional[
List[
Literal[
"benefits",
"company",
"deduction",
"directory",
"documents",
"employment",
"individual",
"payment",
"pay_statement",
"ssn",
]
products: Optional[
List[
Literal[
"benefits",
"company",
"deduction",
"directory",
"documents",
"employment",
"individual",
"payment",
"pay_statement",
"ssn",
]
]
]
"""The products to request access to (optional for reauthentication)"""

redirect_uri: Required[Optional[str]]
redirect_uri: Optional[str]
"""The URI to redirect to after the Connect flow is completed"""
Loading