From 0483ba4268f9509fd6c22777cbaf8d734dff8642 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:18:41 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 8 +- api.md | 6 + .../resources/simulations/__init__.py | 14 ++ .../simulations/card_purchase_supplements.py | 215 ++++++++++++++++++ .../resources/simulations/simulations.py | 32 +++ src/increase/types/simulations/__init__.py | 3 + .../card_purchase_supplement_create_params.py | 91 ++++++++ .../test_card_purchase_supplements.py | 153 +++++++++++++ 8 files changed, 518 insertions(+), 4 deletions(-) create mode 100644 src/increase/resources/simulations/card_purchase_supplements.py create mode 100644 src/increase/types/simulations/card_purchase_supplement_create_params.py create mode 100644 tests/api_resources/simulations/test_card_purchase_supplements.py diff --git a/.stats.yml b/.stats.yml index 52a1884e..ebb83182 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 240 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-c9957e6ab1c9adef0dfb9a3956c8e7505a1661d22e79531eaee71b2a3a699b61.yml -openapi_spec_hash: 1190741469af674747df81908239a601 -config_hash: 82cb0fb1fae47b3467cd6da4273541de +configured_endpoints: 241 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-ecd0cee565701f1d47c0db3efed2734f1195f60e5767c9c5f67ddb5de5e6abf1.yml +openapi_spec_hash: d9205bf9cc1ce52d0d046007318761a1 +config_hash: cb5b8736705c06b670f6a25484622d62 diff --git a/api.md b/api.md index b0c19977..568b6ca4 100644 --- a/api.md +++ b/api.md @@ -901,6 +901,12 @@ Methods: - client.simulations.card_authentications.challenge_attempts(card_payment_id, \*\*params) -> CardPayment - client.simulations.card_authentications.challenges(card_payment_id) -> CardPayment +## CardPurchaseSupplements + +Methods: + +- client.simulations.card_purchase_supplements.create(\*\*params) -> CardPurchaseSupplement + ## CardDisputes Methods: diff --git a/src/increase/resources/simulations/__init__.py b/src/increase/resources/simulations/__init__.py index ab9d7577..bf08974a 100644 --- a/src/increase/resources/simulations/__init__.py +++ b/src/increase/resources/simulations/__init__.py @@ -216,6 +216,14 @@ InboundFednowTransfersResourceWithStreamingResponse, AsyncInboundFednowTransfersResourceWithStreamingResponse, ) +from .card_purchase_supplements import ( + CardPurchaseSupplementsResource, + AsyncCardPurchaseSupplementsResource, + CardPurchaseSupplementsResourceWithRawResponse, + AsyncCardPurchaseSupplementsResourceWithRawResponse, + CardPurchaseSupplementsResourceWithStreamingResponse, + AsyncCardPurchaseSupplementsResourceWithStreamingResponse, +) from .entity_onboarding_sessions import ( EntityOnboardingSessionsResource, AsyncEntityOnboardingSessionsResource, @@ -326,6 +334,12 @@ "AsyncCardAuthenticationsResourceWithRawResponse", "CardAuthenticationsResourceWithStreamingResponse", "AsyncCardAuthenticationsResourceWithStreamingResponse", + "CardPurchaseSupplementsResource", + "AsyncCardPurchaseSupplementsResource", + "CardPurchaseSupplementsResourceWithRawResponse", + "AsyncCardPurchaseSupplementsResourceWithRawResponse", + "CardPurchaseSupplementsResourceWithStreamingResponse", + "AsyncCardPurchaseSupplementsResourceWithStreamingResponse", "CardDisputesResource", "AsyncCardDisputesResource", "CardDisputesResourceWithRawResponse", diff --git a/src/increase/resources/simulations/card_purchase_supplements.py b/src/increase/resources/simulations/card_purchase_supplements.py new file mode 100644 index 00000000..939cfba3 --- /dev/null +++ b/src/increase/resources/simulations/card_purchase_supplements.py @@ -0,0 +1,215 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Iterable + +import httpx + +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 +from ..._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ..._base_client import make_request_options +from ...types.simulations import card_purchase_supplement_create_params +from ...types.card_purchase_supplement import CardPurchaseSupplement + +__all__ = ["CardPurchaseSupplementsResource", "AsyncCardPurchaseSupplementsResource"] + + +class CardPurchaseSupplementsResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> CardPurchaseSupplementsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/Increase/increase-python#accessing-raw-response-data-eg-headers + """ + return CardPurchaseSupplementsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> CardPurchaseSupplementsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/Increase/increase-python#with_streaming_response + """ + return CardPurchaseSupplementsResourceWithStreamingResponse(self) + + def create( + self, + *, + transaction_id: str, + invoice: card_purchase_supplement_create_params.Invoice | Omit = omit, + line_items: Iterable[card_purchase_supplement_create_params.LineItem] | 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, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + idempotency_key: str | None = None, + ) -> CardPurchaseSupplement: + """ + Simulates the creation of a Card Purchase Supplement (Level 3 data) for a card + settlement. This happens asynchronously in production when Visa sends enhanced + transaction data about a purchase. + + Args: + transaction_id: The identifier of the Transaction to create a Card Purchase Supplement for. The + Transaction must have a source of type `card_settlement`. + + invoice: Invoice-level information about the payment. + + line_items: Line item information, such as individual products purchased. + + 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( + "/simulations/card_purchase_supplements", + body=maybe_transform( + { + "transaction_id": transaction_id, + "invoice": invoice, + "line_items": line_items, + }, + card_purchase_supplement_create_params.CardPurchaseSupplementCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=CardPurchaseSupplement, + ) + + +class AsyncCardPurchaseSupplementsResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncCardPurchaseSupplementsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/Increase/increase-python#accessing-raw-response-data-eg-headers + """ + return AsyncCardPurchaseSupplementsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncCardPurchaseSupplementsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/Increase/increase-python#with_streaming_response + """ + return AsyncCardPurchaseSupplementsResourceWithStreamingResponse(self) + + async def create( + self, + *, + transaction_id: str, + invoice: card_purchase_supplement_create_params.Invoice | Omit = omit, + line_items: Iterable[card_purchase_supplement_create_params.LineItem] | 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, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + idempotency_key: str | None = None, + ) -> CardPurchaseSupplement: + """ + Simulates the creation of a Card Purchase Supplement (Level 3 data) for a card + settlement. This happens asynchronously in production when Visa sends enhanced + transaction data about a purchase. + + Args: + transaction_id: The identifier of the Transaction to create a Card Purchase Supplement for. The + Transaction must have a source of type `card_settlement`. + + invoice: Invoice-level information about the payment. + + line_items: Line item information, such as individual products purchased. + + 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( + "/simulations/card_purchase_supplements", + body=await async_maybe_transform( + { + "transaction_id": transaction_id, + "invoice": invoice, + "line_items": line_items, + }, + card_purchase_supplement_create_params.CardPurchaseSupplementCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + idempotency_key=idempotency_key, + ), + cast_to=CardPurchaseSupplement, + ) + + +class CardPurchaseSupplementsResourceWithRawResponse: + def __init__(self, card_purchase_supplements: CardPurchaseSupplementsResource) -> None: + self._card_purchase_supplements = card_purchase_supplements + + self.create = to_raw_response_wrapper( + card_purchase_supplements.create, + ) + + +class AsyncCardPurchaseSupplementsResourceWithRawResponse: + def __init__(self, card_purchase_supplements: AsyncCardPurchaseSupplementsResource) -> None: + self._card_purchase_supplements = card_purchase_supplements + + self.create = async_to_raw_response_wrapper( + card_purchase_supplements.create, + ) + + +class CardPurchaseSupplementsResourceWithStreamingResponse: + def __init__(self, card_purchase_supplements: CardPurchaseSupplementsResource) -> None: + self._card_purchase_supplements = card_purchase_supplements + + self.create = to_streamed_response_wrapper( + card_purchase_supplements.create, + ) + + +class AsyncCardPurchaseSupplementsResourceWithStreamingResponse: + def __init__(self, card_purchase_supplements: AsyncCardPurchaseSupplementsResource) -> None: + self._card_purchase_supplements = card_purchase_supplements + + self.create = async_to_streamed_response_wrapper( + card_purchase_supplements.create, + ) diff --git a/src/increase/resources/simulations/simulations.py b/src/increase/resources/simulations/simulations.py index b93fcb05..d567464f 100644 --- a/src/increase/resources/simulations/simulations.py +++ b/src/increase/resources/simulations/simulations.py @@ -212,6 +212,14 @@ InboundFednowTransfersResourceWithStreamingResponse, AsyncInboundFednowTransfersResourceWithStreamingResponse, ) +from .card_purchase_supplements import ( + CardPurchaseSupplementsResource, + AsyncCardPurchaseSupplementsResource, + CardPurchaseSupplementsResourceWithRawResponse, + AsyncCardPurchaseSupplementsResourceWithRawResponse, + CardPurchaseSupplementsResourceWithStreamingResponse, + AsyncCardPurchaseSupplementsResourceWithStreamingResponse, +) from .entity_onboarding_sessions import ( EntityOnboardingSessionsResource, AsyncEntityOnboardingSessionsResource, @@ -305,6 +313,10 @@ def card_refunds(self) -> CardRefundsResource: def card_authentications(self) -> CardAuthenticationsResource: return CardAuthenticationsResource(self._client) + @cached_property + def card_purchase_supplements(self) -> CardPurchaseSupplementsResource: + return CardPurchaseSupplementsResource(self._client) + @cached_property def card_disputes(self) -> CardDisputesResource: return CardDisputesResource(self._client) @@ -454,6 +466,10 @@ def card_refunds(self) -> AsyncCardRefundsResource: def card_authentications(self) -> AsyncCardAuthenticationsResource: return AsyncCardAuthenticationsResource(self._client) + @cached_property + def card_purchase_supplements(self) -> AsyncCardPurchaseSupplementsResource: + return AsyncCardPurchaseSupplementsResource(self._client) + @cached_property def card_disputes(self) -> AsyncCardDisputesResource: return AsyncCardDisputesResource(self._client) @@ -606,6 +622,10 @@ def card_refunds(self) -> CardRefundsResourceWithRawResponse: def card_authentications(self) -> CardAuthenticationsResourceWithRawResponse: return CardAuthenticationsResourceWithRawResponse(self._simulations.card_authentications) + @cached_property + def card_purchase_supplements(self) -> CardPurchaseSupplementsResourceWithRawResponse: + return CardPurchaseSupplementsResourceWithRawResponse(self._simulations.card_purchase_supplements) + @cached_property def card_disputes(self) -> CardDisputesResourceWithRawResponse: return CardDisputesResourceWithRawResponse(self._simulations.card_disputes) @@ -743,6 +763,10 @@ def card_refunds(self) -> AsyncCardRefundsResourceWithRawResponse: def card_authentications(self) -> AsyncCardAuthenticationsResourceWithRawResponse: return AsyncCardAuthenticationsResourceWithRawResponse(self._simulations.card_authentications) + @cached_property + def card_purchase_supplements(self) -> AsyncCardPurchaseSupplementsResourceWithRawResponse: + return AsyncCardPurchaseSupplementsResourceWithRawResponse(self._simulations.card_purchase_supplements) + @cached_property def card_disputes(self) -> AsyncCardDisputesResourceWithRawResponse: return AsyncCardDisputesResourceWithRawResponse(self._simulations.card_disputes) @@ -880,6 +904,10 @@ def card_refunds(self) -> CardRefundsResourceWithStreamingResponse: def card_authentications(self) -> CardAuthenticationsResourceWithStreamingResponse: return CardAuthenticationsResourceWithStreamingResponse(self._simulations.card_authentications) + @cached_property + def card_purchase_supplements(self) -> CardPurchaseSupplementsResourceWithStreamingResponse: + return CardPurchaseSupplementsResourceWithStreamingResponse(self._simulations.card_purchase_supplements) + @cached_property def card_disputes(self) -> CardDisputesResourceWithStreamingResponse: return CardDisputesResourceWithStreamingResponse(self._simulations.card_disputes) @@ -1019,6 +1047,10 @@ def card_refunds(self) -> AsyncCardRefundsResourceWithStreamingResponse: def card_authentications(self) -> AsyncCardAuthenticationsResourceWithStreamingResponse: return AsyncCardAuthenticationsResourceWithStreamingResponse(self._simulations.card_authentications) + @cached_property + def card_purchase_supplements(self) -> AsyncCardPurchaseSupplementsResourceWithStreamingResponse: + return AsyncCardPurchaseSupplementsResourceWithStreamingResponse(self._simulations.card_purchase_supplements) + @cached_property def card_disputes(self) -> AsyncCardDisputesResourceWithStreamingResponse: return AsyncCardDisputesResourceWithStreamingResponse(self._simulations.card_disputes) diff --git a/src/increase/types/simulations/__init__.py b/src/increase/types/simulations/__init__.py index 17ec3a35..ad904b26 100644 --- a/src/increase/types/simulations/__init__.py +++ b/src/increase/types/simulations/__init__.py @@ -32,6 +32,9 @@ from .physical_card_advance_shipment_params import ( PhysicalCardAdvanceShipmentParams as PhysicalCardAdvanceShipmentParams, ) +from .card_purchase_supplement_create_params import ( + CardPurchaseSupplementCreateParams as CardPurchaseSupplementCreateParams, +) from .inbound_check_deposit_adjustment_params import ( InboundCheckDepositAdjustmentParams as InboundCheckDepositAdjustmentParams, ) diff --git a/src/increase/types/simulations/card_purchase_supplement_create_params.py b/src/increase/types/simulations/card_purchase_supplement_create_params.py new file mode 100644 index 00000000..48f223a1 --- /dev/null +++ b/src/increase/types/simulations/card_purchase_supplement_create_params.py @@ -0,0 +1,91 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union, Iterable +from datetime import date +from typing_extensions import Required, Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["CardPurchaseSupplementCreateParams", "Invoice", "LineItem"] + + +class CardPurchaseSupplementCreateParams(TypedDict, total=False): + transaction_id: Required[str] + """The identifier of the Transaction to create a Card Purchase Supplement for. + + The Transaction must have a source of type `card_settlement`. + """ + + invoice: Invoice + """Invoice-level information about the payment.""" + + line_items: Iterable[LineItem] + """Line item information, such as individual products purchased.""" + + +class Invoice(TypedDict, total=False): + """Invoice-level information about the payment.""" + + discount_amount: int + """Discount given to cardholder.""" + + duty_tax_amount: int + """Amount of duty taxes.""" + + order_date: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + """Date the order was taken.""" + + shipping_amount: int + """The shipping cost.""" + + shipping_destination_country_code: str + """Country code of the shipping destination.""" + + shipping_destination_postal_code: str + """Postal code of the shipping destination.""" + + shipping_source_postal_code: str + """Postal code of the location being shipped from.""" + + shipping_tax_amount: int + """Taxes paid for freight and shipping.""" + + shipping_tax_rate: str + """Tax rate for freight and shipping.""" + + unique_value_added_tax_invoice_reference: str + """Value added tax invoice reference number.""" + + +class LineItem(TypedDict, total=False): + discount_amount: int + """Discount amount for this specific line item.""" + + item_commodity_code: str + """Code used to categorize the purchase item.""" + + item_descriptor: str + """Description of the purchase item.""" + + item_quantity: str + """The number of units of the product being purchased.""" + + product_code: str + """Code used to categorize the product being purchased.""" + + sales_tax_amount: int + """Sales tax amount for this line item.""" + + sales_tax_rate: str + """Sales tax rate for this line item.""" + + total_amount: int + """Total amount of all line items.""" + + unit_cost: str + """Cost of line item per unit of measure, in major units.""" + + unit_of_measure_code: str + """Code indicating unit of measure (gallons, etc.).""" diff --git a/tests/api_resources/simulations/test_card_purchase_supplements.py b/tests/api_resources/simulations/test_card_purchase_supplements.py new file mode 100644 index 00000000..3ae8fdf3 --- /dev/null +++ b/tests/api_resources/simulations/test_card_purchase_supplements.py @@ -0,0 +1,153 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, cast + +import pytest + +from increase import Increase, AsyncIncrease +from tests.utils import assert_matches_type +from increase.types import CardPurchaseSupplement +from increase._utils import parse_date + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestCardPurchaseSupplements: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_create(self, client: Increase) -> None: + card_purchase_supplement = client.simulations.card_purchase_supplements.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + def test_method_create_with_all_params(self, client: Increase) -> None: + card_purchase_supplement = client.simulations.card_purchase_supplements.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + invoice={ + "discount_amount": 100, + "duty_tax_amount": 200, + "order_date": parse_date("2023-07-20"), + "shipping_amount": 300, + "shipping_destination_country_code": "US", + "shipping_destination_postal_code": "10045", + "shipping_source_postal_code": "10045", + "shipping_tax_amount": 400, + "shipping_tax_rate": "0.2", + "unique_value_added_tax_invoice_reference": "12302", + }, + line_items=[ + { + "discount_amount": 0, + "item_commodity_code": "001", + "item_descriptor": "Coffee", + "item_quantity": "1", + "product_code": "101", + "sales_tax_amount": 0, + "sales_tax_rate": "-16699", + "total_amount": 500, + "unit_cost": "5", + "unit_of_measure_code": "NMB", + } + ], + ) + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + def test_raw_response_create(self, client: Increase) -> None: + response = client.simulations.card_purchase_supplements.with_raw_response.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + card_purchase_supplement = response.parse() + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + def test_streaming_response_create(self, client: Increase) -> None: + with client.simulations.card_purchase_supplements.with_streaming_response.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + card_purchase_supplement = response.parse() + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + assert cast(Any, response.is_closed) is True + + +class TestAsyncCardPurchaseSupplements: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @parametrize + async def test_method_create(self, async_client: AsyncIncrease) -> None: + card_purchase_supplement = await async_client.simulations.card_purchase_supplements.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + async def test_method_create_with_all_params(self, async_client: AsyncIncrease) -> None: + card_purchase_supplement = await async_client.simulations.card_purchase_supplements.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + invoice={ + "discount_amount": 100, + "duty_tax_amount": 200, + "order_date": parse_date("2023-07-20"), + "shipping_amount": 300, + "shipping_destination_country_code": "US", + "shipping_destination_postal_code": "10045", + "shipping_source_postal_code": "10045", + "shipping_tax_amount": 400, + "shipping_tax_rate": "0.2", + "unique_value_added_tax_invoice_reference": "12302", + }, + line_items=[ + { + "discount_amount": 0, + "item_commodity_code": "001", + "item_descriptor": "Coffee", + "item_quantity": "1", + "product_code": "101", + "sales_tax_amount": 0, + "sales_tax_rate": "-16699", + "total_amount": 500, + "unit_cost": "5", + "unit_of_measure_code": "NMB", + } + ], + ) + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + async def test_raw_response_create(self, async_client: AsyncIncrease) -> None: + response = await async_client.simulations.card_purchase_supplements.with_raw_response.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + card_purchase_supplement = await response.parse() + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + @parametrize + async def test_streaming_response_create(self, async_client: AsyncIncrease) -> None: + async with async_client.simulations.card_purchase_supplements.with_streaming_response.create( + transaction_id="transaction_uyrp7fld2ium70oa7oi", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + card_purchase_supplement = await response.parse() + assert_matches_type(CardPurchaseSupplement, card_purchase_supplement, path=["response"]) + + assert cast(Any, response.is_closed) is True From 19d37102ad656a2c67b4d4f50e186abfbd8d8fea Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:19:04 +0000 Subject: [PATCH 2/2] release: 0.484.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/increase/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b8dfd049..db96e693 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.483.0" + ".": "0.484.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b2d4fab3..0d39a370 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.484.0 (2026-04-13) + +Full Changelog: [v0.483.0...v0.484.0](https://github.com/Increase/increase-python/compare/v0.483.0...v0.484.0) + +### Features + +* **api:** api update ([0483ba4](https://github.com/Increase/increase-python/commit/0483ba4268f9509fd6c22777cbaf8d734dff8642)) + ## 0.483.0 (2026-04-13) Full Changelog: [v0.482.0...v0.483.0](https://github.com/Increase/increase-python/compare/v0.482.0...v0.483.0) diff --git a/pyproject.toml b/pyproject.toml index a5455f93..ab123afb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "increase" -version = "0.483.0" +version = "0.484.0" description = "The official Python library for the increase API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/increase/_version.py b/src/increase/_version.py index 8f167744..0865378e 100644 --- a/src/increase/_version.py +++ b/src/increase/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "increase" -__version__ = "0.483.0" # x-release-please-version +__version__ = "0.484.0" # x-release-please-version