Skip to content

Commit f1553d6

Browse files
committed
feat(readme): drop 'generated with Stainless' attribution from SDK READMEs
Sets readme.include_stainless_attribution: false so stlc omits the 'It is generated with [Stainless](https://www.stainless.com/).' tagline from every generated SDK README. Pairs with the fork change (stlc f290900) that removes the VS Code/Stainless badge, the stainless-api/sdk-assets proxy icons, and the stainless.com/blog enum link. Zero-Stainless footprint in READMEs. Stainless-Generated-From: 7a802cc
1 parent 475f452 commit f1553d6

17 files changed

Lines changed: 53 additions & 302 deletions

CHANGELOG.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
11
# Changelog
22

3-
## [1.101.0](https://github.com/dodopayments/dodopayments-python/compare/v1.99.1...v1.101.0) (2026-06-01)
4-
5-
6-
### Features
7-
8-
* **api:** regenerate SDK from latest OpenAPI spec (1.101.0) ([3e3803b](https://github.com/dodopayments/dodopayments-python/commit/3e3803ba74f7b6c5bb68db9c5adda15bca9141fc))
9-
10-
11-
### Chores
12-
13-
* re-seal custom code for 1.101.0 spec (python/go/typescript/kotlin/ruby/php) ([ffa5dc2](https://github.com/dodopayments/dodopayments-python/commit/ffa5dc252f4e00302da9fdf694da64773feec882))
14-
* release 1.101.0 ([3fc1958](https://github.com/dodopayments/dodopayments-python/commit/3fc1958fa041f46fdadb167a812361b7844b0196))
15-
163
## [1.99.1](https://github.com/dodopayments/dodopayments-python/compare/v1.99.0...v1.99.1) (2026-06-01)
174

185

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@ The [Dodo Payments](https://dodopayments.com) Python library provides convenient
77
application. The library includes type definitions for all request params and response fields,
88
and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
99

10-
It is generated with [Stainless](https://www.stainless.com/).
11-
1210
## MCP Server
1311

1412
Use the Dodo Payments MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
1513

1614
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=dodopayments-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImRvZG9wYXltZW50cy1tY3AiXSwiZW52Ijp7IkRPRE9fUEFZTUVOVFNfQVBJX0tFWSI6Ik15IEJlYXJlciBUb2tlbiIsIkRPRE9fUEFZTUVOVFNfV0VCSE9PS19LRVkiOiJNeSBXZWJob29rIEtleSJ9fQ)
17-
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22dodopayments-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22dodopayments-mcp%22%5D%2C%22env%22%3A%7B%22DODO_PAYMENTS_API_KEY%22%3A%22My%20Bearer%20Token%22%2C%22DODO_PAYMENTS_WEBHOOK_KEY%22%3A%22My%20Webhook%20Key%22%7D%7D)
1815

1916
> Note: You may need to set environment variables in your MCP client.
2017

src/dodopayments/resources/balances.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ def retrieve_ledger(
220220
"currency_conversion",
221221
"abandoned_cart_recovery_fee",
222222
"dunning_fees",
223-
"payment_retry_fee",
224223
]
225224
| Omit = omit,
226225
limit: int | Omit = omit,
@@ -480,7 +479,6 @@ def retrieve_ledger(
480479
"currency_conversion",
481480
"abandoned_cart_recovery_fee",
482481
"dunning_fees",
483-
"payment_retry_fee",
484482
]
485483
| Omit = omit,
486484
limit: int | Omit = omit,

src/dodopayments/resources/discounts.py

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,16 @@ def create(
7171
is generated.
7272
7373
Args:
74-
amount: The discount amount in **basis points** (e.g. `540` means `5.4%`, `10000` means
75-
`100%`).
74+
amount: The discount amount.
75+
76+
- If `discount_type` is **not** `percentage`, `amount` is in **USD cents**. For
77+
example, `100` means `$1.00`. Only USD is allowed.
78+
- If `discount_type` **is** `percentage`, `amount` is in **basis points**. For
79+
example, `540` means `5.4%`.
7680
7781
Must be at least 1.
7882
79-
type: The discount type. Currently only `percentage` is supported.
83+
type: The discount type (e.g. `percentage`, `flat`, or `flat_per_unit`).
8084
8185
code: Optionally supply a code (will be uppercased).
8286
@@ -187,8 +191,12 @@ def update(
187191
PATCH /discounts/{discount_id}
188192
189193
Args:
190-
amount: If present, update the discount amount in **basis points** (e.g., `540` =
191-
`5.4%`, `10000` = `100%`).
194+
amount:
195+
If present, update the discount amount:
196+
197+
- If `discount_type` is `percentage`, this represents **basis points** (e.g.,
198+
`540` = `5.4%`).
199+
- Otherwise, this represents **USD cents** (e.g., `100` = `$1.00`).
192200
193201
Must be at least 1 if provided.
194202
@@ -206,7 +214,7 @@ def update(
206214
provided, the discount will be applied indefinitely to all recurring payments
207215
related to the subscription.
208216
209-
type: If present, update the discount type. Currently only `percentage` is supported.
217+
type: If present, update the discount type.
210218
211219
extra_headers: Send extra headers
212220
@@ -265,7 +273,7 @@ def list(
265273
266274
code: Filter by discount code (partial match, case-insensitive)
267275
268-
discount_type: Filter by discount type
276+
discount_type: Filter by discount type (percentage)
269277
270278
page_number: Page number (default = 0).
271279
@@ -420,12 +428,16 @@ async def create(
420428
is generated.
421429
422430
Args:
423-
amount: The discount amount in **basis points** (e.g. `540` means `5.4%`, `10000` means
424-
`100%`).
431+
amount: The discount amount.
432+
433+
- If `discount_type` is **not** `percentage`, `amount` is in **USD cents**. For
434+
example, `100` means `$1.00`. Only USD is allowed.
435+
- If `discount_type` **is** `percentage`, `amount` is in **basis points**. For
436+
example, `540` means `5.4%`.
425437
426438
Must be at least 1.
427439
428-
type: The discount type. Currently only `percentage` is supported.
440+
type: The discount type (e.g. `percentage`, `flat`, or `flat_per_unit`).
429441
430442
code: Optionally supply a code (will be uppercased).
431443
@@ -536,8 +548,12 @@ async def update(
536548
PATCH /discounts/{discount_id}
537549
538550
Args:
539-
amount: If present, update the discount amount in **basis points** (e.g., `540` =
540-
`5.4%`, `10000` = `100%`).
551+
amount:
552+
If present, update the discount amount:
553+
554+
- If `discount_type` is `percentage`, this represents **basis points** (e.g.,
555+
`540` = `5.4%`).
556+
- Otherwise, this represents **USD cents** (e.g., `100` = `$1.00`).
541557
542558
Must be at least 1 if provided.
543559
@@ -555,7 +571,7 @@ async def update(
555571
provided, the discount will be applied indefinitely to all recurring payments
556572
related to the subscription.
557573
558-
type: If present, update the discount type. Currently only `percentage` is supported.
574+
type: If present, update the discount type.
559575
560576
extra_headers: Send extra headers
561577
@@ -614,7 +630,7 @@ def list(
614630
615631
code: Filter by discount code (partial match, case-insensitive)
616632
617-
discount_type: Filter by discount type
633+
discount_type: Filter by discount type (percentage)
618634
619635
page_number: Page number (default = 0).
620636

src/dodopayments/resources/product_collections/product_collections.py

Lines changed: 0 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from __future__ import annotations
44

55
from typing import Iterable, Optional
6-
from typing_extensions import Literal
76

87
import httpx
98

@@ -73,17 +72,6 @@ def create(
7372
name: str,
7473
brand_id: Optional[str] | Omit = omit,
7574
description: Optional[str] | Omit = omit,
76-
effective_at_on_downgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
77-
effective_at_on_upgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
78-
on_payment_failure: Optional[Literal["prevent_change", "apply_change"]] | Omit = omit,
79-
proration_billing_mode_on_downgrade: Optional[
80-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
81-
]
82-
| Omit = omit,
83-
proration_billing_mode_on_upgrade: Optional[
84-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
85-
]
86-
| Omit = omit,
8775
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
8876
# The extra values given here take precedence over values defined on the client or passed to this method.
8977
extra_headers: Headers | None = None,
@@ -101,21 +89,6 @@ def create(
10189
10290
description: Optional description of the product collection
10391
104-
effective_at_on_downgrade: Default effective_at setting for subscription plan downgrades (NULL = inherit
105-
from business)
106-
107-
effective_at_on_upgrade: Default effective_at setting for subscription plan upgrades (NULL = inherit from
108-
business)
109-
110-
on_payment_failure: Default behavior for subscription plan changes on payment failure (NULL =
111-
inherit from business)
112-
113-
proration_billing_mode_on_downgrade: Default proration billing mode for subscription plan downgrades (NULL = inherit
114-
from business)
115-
116-
proration_billing_mode_on_upgrade: Default proration billing mode for subscription plan upgrades (NULL = inherit
117-
from business)
118-
11992
extra_headers: Send extra headers
12093
12194
extra_query: Add additional query parameters to the request
@@ -132,11 +105,6 @@ def create(
132105
"name": name,
133106
"brand_id": brand_id,
134107
"description": description,
135-
"effective_at_on_downgrade": effective_at_on_downgrade,
136-
"effective_at_on_upgrade": effective_at_on_upgrade,
137-
"on_payment_failure": on_payment_failure,
138-
"proration_billing_mode_on_downgrade": proration_billing_mode_on_downgrade,
139-
"proration_billing_mode_on_upgrade": proration_billing_mode_on_upgrade,
140108
},
141109
product_collection_create_params.ProductCollectionCreateParams,
142110
),
@@ -183,20 +151,9 @@ def update(
183151
*,
184152
brand_id: Optional[str] | Omit = omit,
185153
description: Optional[str] | Omit = omit,
186-
effective_at_on_downgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
187-
effective_at_on_upgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
188154
group_order: Optional[SequenceNotStr[str]] | Omit = omit,
189155
image_id: Optional[str] | Omit = omit,
190156
name: Optional[str] | Omit = omit,
191-
on_payment_failure: Optional[Literal["prevent_change", "apply_change"]] | Omit = omit,
192-
proration_billing_mode_on_downgrade: Optional[
193-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
194-
]
195-
| Omit = omit,
196-
proration_billing_mode_on_upgrade: Optional[
197-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
198-
]
199-
| Omit = omit,
200157
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
201158
# The extra values given here take precedence over values defined on the client or passed to this method.
202159
extra_headers: Headers | None = None,
@@ -210,27 +167,12 @@ def update(
210167
211168
description: Optional description update - pass null to remove, omit to keep unchanged
212169
213-
effective_at_on_downgrade: Effective_at setting for downgrades: Some(Some(val)) = set, Some(None) = clear
214-
(inherit), None = no change
215-
216-
effective_at_on_upgrade: Effective_at setting for upgrades: Some(Some(val)) = set, Some(None) = clear
217-
(inherit), None = no change
218-
219170
group_order: Optional new order for groups (array of group UUIDs in desired order)
220171
221172
image_id: Optional image update - pass null to remove, omit to keep unchanged
222173
223174
name: Optional new name for the collection
224175
225-
on_payment_failure: On payment failure behavior: Some(Some(val)) = set, Some(None) = clear
226-
(inherit), None = no change
227-
228-
proration_billing_mode_on_downgrade: Proration billing mode for downgrades: Some(Some(val)) = set, Some(None) = clear
229-
(inherit), None = no change
230-
231-
proration_billing_mode_on_upgrade: Proration billing mode for upgrades: Some(Some(val)) = set, Some(None) = clear
232-
(inherit), None = no change
233-
234176
extra_headers: Send extra headers
235177
236178
extra_query: Add additional query parameters to the request
@@ -248,14 +190,9 @@ def update(
248190
{
249191
"brand_id": brand_id,
250192
"description": description,
251-
"effective_at_on_downgrade": effective_at_on_downgrade,
252-
"effective_at_on_upgrade": effective_at_on_upgrade,
253193
"group_order": group_order,
254194
"image_id": image_id,
255195
"name": name,
256-
"on_payment_failure": on_payment_failure,
257-
"proration_billing_mode_on_downgrade": proration_billing_mode_on_downgrade,
258-
"proration_billing_mode_on_upgrade": proration_billing_mode_on_upgrade,
259196
},
260197
product_collection_update_params.ProductCollectionUpdateParams,
261198
),
@@ -454,17 +391,6 @@ async def create(
454391
name: str,
455392
brand_id: Optional[str] | Omit = omit,
456393
description: Optional[str] | Omit = omit,
457-
effective_at_on_downgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
458-
effective_at_on_upgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
459-
on_payment_failure: Optional[Literal["prevent_change", "apply_change"]] | Omit = omit,
460-
proration_billing_mode_on_downgrade: Optional[
461-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
462-
]
463-
| Omit = omit,
464-
proration_billing_mode_on_upgrade: Optional[
465-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
466-
]
467-
| Omit = omit,
468394
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
469395
# The extra values given here take precedence over values defined on the client or passed to this method.
470396
extra_headers: Headers | None = None,
@@ -482,21 +408,6 @@ async def create(
482408
483409
description: Optional description of the product collection
484410
485-
effective_at_on_downgrade: Default effective_at setting for subscription plan downgrades (NULL = inherit
486-
from business)
487-
488-
effective_at_on_upgrade: Default effective_at setting for subscription plan upgrades (NULL = inherit from
489-
business)
490-
491-
on_payment_failure: Default behavior for subscription plan changes on payment failure (NULL =
492-
inherit from business)
493-
494-
proration_billing_mode_on_downgrade: Default proration billing mode for subscription plan downgrades (NULL = inherit
495-
from business)
496-
497-
proration_billing_mode_on_upgrade: Default proration billing mode for subscription plan upgrades (NULL = inherit
498-
from business)
499-
500411
extra_headers: Send extra headers
501412
502413
extra_query: Add additional query parameters to the request
@@ -513,11 +424,6 @@ async def create(
513424
"name": name,
514425
"brand_id": brand_id,
515426
"description": description,
516-
"effective_at_on_downgrade": effective_at_on_downgrade,
517-
"effective_at_on_upgrade": effective_at_on_upgrade,
518-
"on_payment_failure": on_payment_failure,
519-
"proration_billing_mode_on_downgrade": proration_billing_mode_on_downgrade,
520-
"proration_billing_mode_on_upgrade": proration_billing_mode_on_upgrade,
521427
},
522428
product_collection_create_params.ProductCollectionCreateParams,
523429
),
@@ -564,20 +470,9 @@ async def update(
564470
*,
565471
brand_id: Optional[str] | Omit = omit,
566472
description: Optional[str] | Omit = omit,
567-
effective_at_on_downgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
568-
effective_at_on_upgrade: Optional[Literal["immediately", "next_billing_date"]] | Omit = omit,
569473
group_order: Optional[SequenceNotStr[str]] | Omit = omit,
570474
image_id: Optional[str] | Omit = omit,
571475
name: Optional[str] | Omit = omit,
572-
on_payment_failure: Optional[Literal["prevent_change", "apply_change"]] | Omit = omit,
573-
proration_billing_mode_on_downgrade: Optional[
574-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
575-
]
576-
| Omit = omit,
577-
proration_billing_mode_on_upgrade: Optional[
578-
Literal["prorated_immediately", "full_immediately", "difference_immediately", "do_not_bill"]
579-
]
580-
| Omit = omit,
581476
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
582477
# The extra values given here take precedence over values defined on the client or passed to this method.
583478
extra_headers: Headers | None = None,
@@ -591,27 +486,12 @@ async def update(
591486
592487
description: Optional description update - pass null to remove, omit to keep unchanged
593488
594-
effective_at_on_downgrade: Effective_at setting for downgrades: Some(Some(val)) = set, Some(None) = clear
595-
(inherit), None = no change
596-
597-
effective_at_on_upgrade: Effective_at setting for upgrades: Some(Some(val)) = set, Some(None) = clear
598-
(inherit), None = no change
599-
600489
group_order: Optional new order for groups (array of group UUIDs in desired order)
601490
602491
image_id: Optional image update - pass null to remove, omit to keep unchanged
603492
604493
name: Optional new name for the collection
605494
606-
on_payment_failure: On payment failure behavior: Some(Some(val)) = set, Some(None) = clear
607-
(inherit), None = no change
608-
609-
proration_billing_mode_on_downgrade: Proration billing mode for downgrades: Some(Some(val)) = set, Some(None) = clear
610-
(inherit), None = no change
611-
612-
proration_billing_mode_on_upgrade: Proration billing mode for upgrades: Some(Some(val)) = set, Some(None) = clear
613-
(inherit), None = no change
614-
615495
extra_headers: Send extra headers
616496
617497
extra_query: Add additional query parameters to the request
@@ -629,14 +509,9 @@ async def update(
629509
{
630510
"brand_id": brand_id,
631511
"description": description,
632-
"effective_at_on_downgrade": effective_at_on_downgrade,
633-
"effective_at_on_upgrade": effective_at_on_upgrade,
634512
"group_order": group_order,
635513
"image_id": image_id,
636514
"name": name,
637-
"on_payment_failure": on_payment_failure,
638-
"proration_billing_mode_on_downgrade": proration_billing_mode_on_downgrade,
639-
"proration_billing_mode_on_upgrade": proration_billing_mode_on_upgrade,
640515
},
641516
product_collection_update_params.ProductCollectionUpdateParams,
642517
),

0 commit comments

Comments
 (0)