From babec2956fc1cea2f2a7568f7229be0973f763f6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:40:57 +0000 Subject: [PATCH 1/6] feat(api): add override_company_name parameter to payment create method --- .stats.yml | 4 ++-- src/lithic/types/payment_create_params.py | 6 ++++++ tests/api_resources/test_payments.py | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b44dee87..b59c63e1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 189 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-17c04dd1b0508b380c21e3acc3d4cd1e86b590f81d14fa26d1973b236f660e38.yml -openapi_spec_hash: f8ddee07358d2c938450a6889fbf7940 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7349acbc90f2ba5668e44039a8e16c678944a2e83281f78e54812ba45904f49a.yml +openapi_spec_hash: d749723cb9a5dca308c467a01cfdc3e9 config_hash: edbdfefeb0d3d927c2f9fe3402793215 diff --git a/src/lithic/types/payment_create_params.py b/src/lithic/types/payment_create_params.py index c4f01ed9..7a29cc83 100644 --- a/src/lithic/types/payment_create_params.py +++ b/src/lithic/types/payment_create_params.py @@ -43,6 +43,12 @@ class MethodAttributes(TypedDict, total=False): addenda: Optional[str] + override_company_name: Optional[str] + """Value to override the configured company name with. + + Can only be used if allowed to override + """ + class Hold(TypedDict, total=False): """Optional hold to settle when this payment is initiated.""" diff --git a/tests/api_resources/test_payments.py b/tests/api_resources/test_payments.py index 864c5031..40083d6f 100644 --- a/tests/api_resources/test_payments.py +++ b/tests/api_resources/test_payments.py @@ -50,6 +50,7 @@ def test_method_create_with_all_params(self, client: Lithic) -> None: "sec_code": "CCD", "ach_hold_period": 0, "addenda": "addenda", + "override_company_name": "override_company_name", }, type="COLLECTION", token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", @@ -473,6 +474,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncLithic) -> "sec_code": "CCD", "ach_hold_period": 0, "addenda": "addenda", + "override_company_name": "override_company_name", }, type="COLLECTION", token="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", From 7d73b7b0775f2e4f9fe6cd78f5bbf528b93804ab Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:21:16 +0000 Subject: [PATCH 2/6] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a8072d1..99550732 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 10 name: lint runs-on: ${{ github.repository == 'stainless-sdks/lithic-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 @@ -38,7 +38,7 @@ jobs: run: ./scripts/lint build: - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') timeout-minutes: 10 name: build permissions: @@ -107,7 +107,7 @@ jobs: timeout-minutes: 10 name: examples runs-on: ${{ github.repository == 'stainless-sdks/lithic-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.repository == 'lithic-com/lithic-python' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork) + if: github.repository == 'lithic-com/lithic-python' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 From 812f595d7fcade16c221b048dbd562dfc2138f29 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 20:28:52 +0000 Subject: [PATCH 3/6] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b59c63e1..997e8ed1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 189 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-7349acbc90f2ba5668e44039a8e16c678944a2e83281f78e54812ba45904f49a.yml -openapi_spec_hash: d749723cb9a5dca308c467a01cfdc3e9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8b222de46ecf164a1d6e47c5e677d6e1772c7b1726d0574d9322305c9af4eec6.yml +openapi_spec_hash: f573dc729467c8c592750677f45a3ea4 config_hash: edbdfefeb0d3d927c2f9fe3402793215 From 7514c5966cd9b4a84d221aadffe3ef02c7fa8814 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:08:43 +0000 Subject: [PATCH 4/6] docs(api): update nature_of_business and qr_code_url parameter descriptions --- .stats.yml | 4 +- src/lithic/resources/card_bulk_orders.py | 56 +++++++++---------- src/lithic/resources/cards/cards.py | 40 +++++++------ src/lithic/types/card_bulk_order.py | 8 ++- .../types/card_bulk_order_create_params.py | 8 ++- .../types/card_convert_physical_params.py | 7 +-- src/lithic/types/card_create_params.py | 7 +-- src/lithic/types/card_reissue_params.py | 7 +-- src/lithic/types/card_renew_params.py | 7 +-- 9 files changed, 78 insertions(+), 66 deletions(-) diff --git a/.stats.yml b/.stats.yml index 997e8ed1..52b5bc5e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 189 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8b222de46ecf164a1d6e47c5e677d6e1772c7b1726d0574d9322305c9af4eec6.yml -openapi_spec_hash: f573dc729467c8c592750677f45a3ea4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-eb2cf51467f505a1d29c3ca40b9595ecbf6d6a3743f53bc42a52c8135a252ff0.yml +openapi_spec_hash: 2fbd71b69d71138b3e54432a38d759ed config_hash: edbdfefeb0d3d927c2f9fe3402793215 diff --git a/src/lithic/resources/card_bulk_orders.py b/src/lithic/resources/card_bulk_orders.py index 40c9d132..7d4db098 100644 --- a/src/lithic/resources/card_bulk_orders.py +++ b/src/lithic/resources/card_bulk_orders.py @@ -47,7 +47,7 @@ def create( *, customer_product_id: str, shipping_address: object, - shipping_method: Literal["BULK_EXPEDITED"], + shipping_method: Literal["BULK_EXPEDITED", "BULK_PRIORITY", "BULK_2_DAY", "BULK_EXPRESS"], # 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, @@ -55,14 +55,13 @@ def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: - """Create a new bulk order for physical card shipments **[BETA]**. + """Create a new bulk order for physical card shipments. - Cards can be - added to the order via the POST /v1/cards endpoint by specifying the - bulk_order_token. Lock the order via PATCH - /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work - with your Customer Success Manager and card personalization bureau to ensure - bulk shipping is supported for your program. + Cards can be added to the + order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock + the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for + shipment. Please work with your Customer Success Manager and card + personalization bureau to ensure bulk shipping is supported for your program. Args: customer_product_id: Customer-specified product configuration for physical card manufacturing. This @@ -70,7 +69,8 @@ def create( shipping_address: Shipping address for all cards in this bulk order - shipping_method: Shipping method for all cards in this bulk order + shipping_method: Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and + BULK_EXPRESS are only available with Perfect Plastic Printing extra_headers: Send extra headers @@ -108,7 +108,7 @@ def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: """ - Retrieve a specific bulk order by token **[BETA]** + Retrieve a specific bulk order by token Args: extra_headers: Send extra headers @@ -141,10 +141,10 @@ def update( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: - """Update a bulk order **[BETA]**. + """Update a bulk order. - Primarily used to lock the order, preventing - additional cards from being added + Primarily used to lock the order, preventing additional + cards from being added Args: status: Status to update the bulk order to. Use LOCKED to finalize the order @@ -184,7 +184,7 @@ def list( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SyncCursorPage[CardBulkOrder]: """ - List bulk orders for physical card shipments **[BETA]** + List bulk orders for physical card shipments Args: begin: Date string in RFC 3339 format. Only entries created after the specified time @@ -257,7 +257,7 @@ async def create( *, customer_product_id: str, shipping_address: object, - shipping_method: Literal["BULK_EXPEDITED"], + shipping_method: Literal["BULK_EXPEDITED", "BULK_PRIORITY", "BULK_2_DAY", "BULK_EXPRESS"], # 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, @@ -265,14 +265,13 @@ async def create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: - """Create a new bulk order for physical card shipments **[BETA]**. + """Create a new bulk order for physical card shipments. - Cards can be - added to the order via the POST /v1/cards endpoint by specifying the - bulk_order_token. Lock the order via PATCH - /v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work - with your Customer Success Manager and card personalization bureau to ensure - bulk shipping is supported for your program. + Cards can be added to the + order via the POST /v1/cards endpoint by specifying the bulk_order_token. Lock + the order via PATCH /v1/card_bulk_orders/{bulk_order_token} to prepare for + shipment. Please work with your Customer Success Manager and card + personalization bureau to ensure bulk shipping is supported for your program. Args: customer_product_id: Customer-specified product configuration for physical card manufacturing. This @@ -280,7 +279,8 @@ async def create( shipping_address: Shipping address for all cards in this bulk order - shipping_method: Shipping method for all cards in this bulk order + shipping_method: Shipping method for all cards in this bulk order. BULK_PRIORITY, BULK_2_DAY, and + BULK_EXPRESS are only available with Perfect Plastic Printing extra_headers: Send extra headers @@ -318,7 +318,7 @@ async def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: """ - Retrieve a specific bulk order by token **[BETA]** + Retrieve a specific bulk order by token Args: extra_headers: Send extra headers @@ -351,10 +351,10 @@ async def update( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CardBulkOrder: - """Update a bulk order **[BETA]**. + """Update a bulk order. - Primarily used to lock the order, preventing - additional cards from being added + Primarily used to lock the order, preventing additional + cards from being added Args: status: Status to update the bulk order to. Use LOCKED to finalize the order @@ -396,7 +396,7 @@ def list( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncPaginator[CardBulkOrder, AsyncCursorPage[CardBulkOrder]]: """ - List bulk orders for physical card shipments **[BETA]** + List bulk orders for physical card shipments Args: begin: Date string in RFC 3339 format. Only entries created after the specified time diff --git a/src/lithic/resources/cards/cards.py b/src/lithic/resources/cards/cards.py index e627f240..8b4e7959 100644 --- a/src/lithic/resources/cards/cards.py +++ b/src/lithic/resources/cards/cards.py @@ -124,7 +124,7 @@ def create( | Omit = omit, shipping_address: ShippingAddress | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, spend_limit: int | Omit = omit, @@ -254,7 +254,8 @@ def create( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. spend_limit: Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note @@ -595,7 +596,7 @@ def convert_physical( carrier: Carrier | Omit = omit, product_id: str | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -641,7 +642,8 @@ def convert_physical( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers @@ -940,7 +942,7 @@ def reissue( product_id: str | Omit = omit, shipping_address: ShippingAddress | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -981,7 +983,8 @@ def reissue( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers @@ -1020,7 +1023,7 @@ def renew( exp_year: str | Omit = omit, product_id: str | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -1071,7 +1074,8 @@ def renew( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers @@ -1306,7 +1310,7 @@ async def create( | Omit = omit, shipping_address: ShippingAddress | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, spend_limit: int | Omit = omit, @@ -1436,7 +1440,8 @@ async def create( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. spend_limit: Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit). Transaction requests above the spend limit will be declined. Note @@ -1777,7 +1782,7 @@ async def convert_physical( carrier: Carrier | Omit = omit, product_id: str | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -1823,7 +1828,8 @@ async def convert_physical( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers @@ -2122,7 +2128,7 @@ async def reissue( product_id: str | Omit = omit, shipping_address: ShippingAddress | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2163,7 +2169,8 @@ async def reissue( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers @@ -2202,7 +2209,7 @@ async def renew( exp_year: str | Omit = omit, product_id: str | Omit = omit, shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" + "2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" ] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2253,7 +2260,8 @@ async def renew( tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. extra_headers: Send extra headers diff --git a/src/lithic/types/card_bulk_order.py b/src/lithic/types/card_bulk_order.py index c8ad3abc..1ee94d12 100644 --- a/src/lithic/types/card_bulk_order.py +++ b/src/lithic/types/card_bulk_order.py @@ -30,8 +30,12 @@ class CardBulkOrder(BaseModel): shipping_address: object """Shipping address for all cards in this bulk order""" - shipping_method: Literal["BULK_EXPEDITED"] - """Shipping method for all cards in this bulk order""" + shipping_method: Literal["BULK_EXPEDITED", "BULK_PRIORITY", "BULK_2_DAY", "BULK_EXPRESS"] + """Shipping method for all cards in this bulk order. + + BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect + Plastic Printing + """ status: Literal["OPEN", "LOCKED"] """Status of the bulk order. diff --git a/src/lithic/types/card_bulk_order_create_params.py b/src/lithic/types/card_bulk_order_create_params.py index 641747b6..cfb313a7 100644 --- a/src/lithic/types/card_bulk_order_create_params.py +++ b/src/lithic/types/card_bulk_order_create_params.py @@ -17,5 +17,9 @@ class CardBulkOrderCreateParams(TypedDict, total=False): shipping_address: Required[object] """Shipping address for all cards in this bulk order""" - shipping_method: Required[Literal["BULK_EXPEDITED"]] - """Shipping method for all cards in this bulk order""" + shipping_method: Required[Literal["BULK_EXPEDITED", "BULK_PRIORITY", "BULK_2_DAY", "BULK_EXPRESS"]] + """Shipping method for all cards in this bulk order. + + BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect + Plastic Printing + """ diff --git a/src/lithic/types/card_convert_physical_params.py b/src/lithic/types/card_convert_physical_params.py index 03911cf0..d2aad1ce 100644 --- a/src/lithic/types/card_convert_physical_params.py +++ b/src/lithic/types/card_convert_physical_params.py @@ -24,9 +24,7 @@ class CardConvertPhysicalParams(TypedDict, total=False): to cards of type `PHYSICAL`. This must be configured with Lithic before use. """ - shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" - ] + shipping_method: Literal["2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING"] """Shipping method for the card. Only applies to cards of type PHYSICAL. Use of options besides `STANDARD` @@ -43,5 +41,6 @@ class CardConvertPhysicalParams(TypedDict, total=False): tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. """ diff --git a/src/lithic/types/card_create_params.py b/src/lithic/types/card_create_params.py index 30e313de..bb1c737f 100644 --- a/src/lithic/types/card_create_params.py +++ b/src/lithic/types/card_create_params.py @@ -165,9 +165,7 @@ class CardCreateParams(TypedDict, total=False): shipping_address: ShippingAddress - shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" - ] + shipping_method: Literal["2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING"] """Shipping method for the card. Only applies to cards of type PHYSICAL. Use of options besides `STANDARD` @@ -184,7 +182,8 @@ class CardCreateParams(TypedDict, total=False): tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. """ spend_limit: int diff --git a/src/lithic/types/card_reissue_params.py b/src/lithic/types/card_reissue_params.py index 828ff228..45de922d 100644 --- a/src/lithic/types/card_reissue_params.py +++ b/src/lithic/types/card_reissue_params.py @@ -24,9 +24,7 @@ class CardReissueParams(TypedDict, total=False): shipping_address: ShippingAddress """If omitted, the previous shipping address will be used.""" - shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" - ] + shipping_method: Literal["2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING"] """Shipping method for the card. Only applies to cards of type PHYSICAL. Use of options besides `STANDARD` @@ -43,5 +41,6 @@ class CardReissueParams(TypedDict, total=False): tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. """ diff --git a/src/lithic/types/card_renew_params.py b/src/lithic/types/card_renew_params.py index e6fcffe2..7f5ac0d8 100644 --- a/src/lithic/types/card_renew_params.py +++ b/src/lithic/types/card_renew_params.py @@ -38,9 +38,7 @@ class CardRenewParams(TypedDict, total=False): to cards of type `PHYSICAL`. This must be configured with Lithic before use. """ - shipping_method: Literal[ - "2_DAY", "BULK_EXPEDITED", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING" - ] + shipping_method: Literal["2_DAY", "BULK", "EXPEDITED", "EXPRESS", "PRIORITY", "STANDARD", "STANDARD_WITH_TRACKING"] """Shipping method for the card. Only applies to cards of type PHYSICAL. Use of options besides `STANDARD` @@ -57,5 +55,6 @@ class CardRenewParams(TypedDict, total=False): tracking - `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar international option, with tracking - - `BULK_EXPEDITED` - Bulk shipment with Expedited shipping + - `BULK` - Card will be shipped as part of a bulk fulfillment order. The + shipping method and timeline are inherited from the parent bulk order. """ From bef46fbe5eacffefedb37a7677753e877da3c922 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 19:28:38 +0000 Subject: [PATCH 5/6] feat(internal): implement indices array format for query and form serialization --- src/lithic/_qs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lithic/_qs.py b/src/lithic/_qs.py index ada6fd3f..de8c99bc 100644 --- a/src/lithic/_qs.py +++ b/src/lithic/_qs.py @@ -101,7 +101,10 @@ def _stringify_item( items.extend(self._stringify_item(key, item, opts)) return items elif array_format == "indices": - raise NotImplementedError("The array indices format is not supported yet") + items = [] + for i, item in enumerate(value): + items.extend(self._stringify_item(f"{key}[{i}]", item, opts)) + return items elif array_format == "brackets": items = [] key = key + "[]" From b977f61e9bdb90c8db4d19f976a427192f711279 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 19:29:15 +0000 Subject: [PATCH 6/6] release: 0.121.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 19 +++++++++++++++++++ pyproject.toml | 2 +- src/lithic/_version.py | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 486a203f..4bab9967 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.120.0" + ".": "0.121.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7430bae7..69e060d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.121.0 (2026-03-26) + +Full Changelog: [v0.120.0...v0.121.0](https://github.com/lithic-com/lithic-python/compare/v0.120.0...v0.121.0) + +### Features + +* **api:** add override_company_name parameter to payment create method ([babec29](https://github.com/lithic-com/lithic-python/commit/babec2956fc1cea2f2a7568f7229be0973f763f6)) +* **internal:** implement indices array format for query and form serialization ([bef46fb](https://github.com/lithic-com/lithic-python/commit/bef46fbe5eacffefedb37a7677753e877da3c922)) + + +### Chores + +* **ci:** skip lint on metadata-only changes ([7d73b7b](https://github.com/lithic-com/lithic-python/commit/7d73b7b0775f2e4f9fe6cd78f5bbf528b93804ab)) + + +### Documentation + +* **api:** update nature_of_business and qr_code_url parameter descriptions ([7514c59](https://github.com/lithic-com/lithic-python/commit/7514c5966cd9b4a84d221aadffe3ef02c7fa8814)) + ## 0.120.0 (2026-03-23) Full Changelog: [v0.119.0...v0.120.0](https://github.com/lithic-com/lithic-python/compare/v0.119.0...v0.120.0) diff --git a/pyproject.toml b/pyproject.toml index 1a227b5a..3eb30e09 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lithic" -version = "0.120.0" +version = "0.121.0" description = "The official Python library for the lithic API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/lithic/_version.py b/src/lithic/_version.py index 63c609e4..c5edd576 100644 --- a/src/lithic/_version.py +++ b/src/lithic/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "lithic" -__version__ = "0.120.0" # x-release-please-version +__version__ = "0.121.0" # x-release-please-version