- #1155 Update generated code
- Add support for
payment_details
,payments
, andpayouts
onAccountSession.components
andCreateParams.components
- Add support for
features
onAccountSession.components.account_onboarding
andCreateParams.components.account_onboarding
- Add support for new values
customer_tax_location_invalid
andfinancial_connections_no_successful_transaction_refresh
on enumsInvoice.last_finalization_error.code
,PaymentIntent.last_payment_error.code
,SetupAttempt.setup_error.code
,SetupIntent.last_setup_error.code
, andStripeError.code
- Add support for new values
payment_network_reserve_hold
andpayment_network_reserve_release
on enumBalanceTransaction.type
- Change
Climate.Product.metric_tons_available
to be required - Remove support for value
various
from enumClimate.Supplier.removal_pathway
- Remove support for values
challenge_only
andchallenge
from enumPaymentIntent.payment_method_options.card.request_three_d_secure
- Add support for
inactive_message
andrestrictions
onCreateParams
,ModifyParams
, andPaymentLink
- Add support for
transfer_group
onPaymentLink.payment_intent_data
,CreateParams.payment_intent_data
, andModifyParams.payment_intent_data
- Add support for
trial_settings
onPaymentLink.subscription_data
,CreateParams.subscription_data
, andModifyParams.subscription_data
- Add support for
- #1153 Move exports for more modules
stripe.app_info
,stripe.http_client
,stripe.oauth
,stripe.util
,stripe.version
,stripe.webhook
, modules are deprecated. All types are available directly fromstripe
module now. Before:After:from stripe.util import convert_to_stripe_object # or stripe.util.convert_to_stripe_object
from stripe import convert_to_stripe_object # or stripe.convert_to_stripe_object
stripe.api_version
,stripe.multipart_data_generator
,stripe.request_metrics
are deprecated and will be fully removed in the future.
- #1142 Move resource type exports to stripe.___
stripe.error
,stripe.stripe_object
,stripe.api_requestor
,stripe.stripe_response
,stripe.request_options
,stripe.api_resources.*
,stripe.api_resources.abstract.*
modules are deprecated. All types are available directly fromstripe
module now. Before:After:from stripe.error import APIError # or stripe.error.APIError
from stripe import APIError # or stripe.APIError
- #1147 Update generated code
- Add support for new resources
Climate.Order
,Climate.Product
, andClimate.Supplier
- Add support for
cancel
,create
,list
,modify
, andretrieve
methods on resourceOrder
- Add support for
list
andretrieve
methods on resourcesProduct
andSupplier
- Add support for new value
financial_connections_account_inactive
on enumsInvoice.LastFinalizationError.code
,PaymentIntent.LastPaymentError.code
,SetupAttempt.SetupError.code
, andSetupIntent.LastSetupError.code
- Add support for new values
climate_order_purchase
andclimate_order_refund
on enumBalanceTransaction.type
- Add support for
created
onCheckout.Session.ListParams
- Add support for
validate_location
onCustomer.CreateParamsTax
andCustomer.ModifyParamsTax
- Add support for new values
climate.order.canceled
,climate.order.created
,climate.order.delayed
,climate.order.delivered
,climate.order.product_substituted
,climate.product.created
, andclimate.product.pricing_updated
on enumEvent.type
- Add support for new value
challenge
on enumsPaymentIntent. PaymentMethodOptions.Card.request_three_d_secure
andSetupIntent. PaymentMethodOptions.Card.request_three_d_secure
- Add support for new values
climate_order_purchase
andclimate_order_refund
on enumReporting.ReportRun. CreateParamsParameters.reporting_category
- Add support for new values
climate.order.canceled
,climate.order.created
,climate.order.delayed
,climate.order.delivered
,climate.order.product_substituted
,climate.product.created
, andclimate.product.pricing_updated
on enumsWebhookEndpoint.CreateParams.enabled_events[]
andWebhookEndpoint.ModifyParams.enabled_events[]
- Add support for new resources
- #1145 Refactor integration test
- #1138 Update generated code
- Add support for
electronic_commerce_indicator
on resource classesCharge.PaymentMethodDetails.Card.ThreeDSecure
andSetupAttempt.PaymentMethodDetails.Card.ThreeDSecure
- Add support for
exemption_indicator
on resource classCharge.PaymentMethodDetails.Card.ThreeDSecure
- Add support for
transaction_id
on resource classesCharge.PaymentMethodDetails.Card.ThreeDSecure
,SetupAttempt.PaymentMethodDetails.Card.ThreeDSecure
,issuing.Authorization.NetworkData
, andissuing.Transaction.NetworkData
- Add support for
offline
on resource classCharge.PaymentMethodDetails.CardPresent
- Add support for
transferred_to_balance
on resourceCustomerCashBalanceTransaction
- Add support for
three_d_secure
on parameter classesPaymentIntent.ConfirmParamsPaymentMethodOptionsCard
,PaymentIntent.CreateParamsPaymentMethodOptionsCard
,PaymentIntent.ModifyParamsPaymentMethodOptionsCard
,SetupIntent.ConfirmParamsPaymentMethodOptionsCard
,SetupIntent.CreateParamsPaymentMethodOptionsCard
, andSetupIntent.ModifyParamsPaymentMethodOptionsCard
- Add support for
system_trace_audit_number
on resource classissuing.Authorization.NetworkData
- Add support for
network_risk_score
on resource classesissuing.Authorization.PendingRequest
andissuing.Authorization.RequestHistory
- Add support for
requested_at
on resource classissuing.Authorization.RequestHistory
- Add support for
authorization_code
on resource classissuing.Transaction.NetworkData
- Add support for
- #1127 Update generated code
- Add support for
bacs_debit_payments
onAccount.CreateParamsSettings
- Add support for
service_user_number
onAccount.Settings.BacsDebitPayments
- Add support for
capture_before
onCharge.PaymentMethodDetails.Card.capture_before
- Add support for
Paypal
onCheckout.Session.PaymentMethodOptions
- Add support for
tax_amounts
onCreditNote.CreateParamsLine
,CreditNote.PreviewParamsLine
, andCreditNote.PreviewLinesParamsLine
- Add support for
network_data
onIssuing.Transaction
- Add support for
status
onCheckout.Session.ListParams
- Add support for
- #1135 Add initial tests for exports and run them in mypy and pyright
- #1130 Mention types in README.md
- #1134 Run pyright via tox
- #1131 Upgrade black dependency
- #1132 Fix unnecessary casts from pyright 1.1.336
- #1126 Suppress type errors from latest pyright
- #1125 Add support for Python 3.11/3.12
- #1123 Move to python3 venv and update vscode settings
- #1119 Update generated code
- Add support for new value
terminal_reader_hardware_fault
on enumsInvoice.last_finalization_error.code
,PaymentIntent.last_payment_error.code
,SetupAttempt.setup_error.code
,SetupIntent.last_setup_error.code
, andStripeError.code
- Add support for
metadata
onQuote.subscription_data
,QuoteCreateParams.subscription_data
, andQuoteUpdateParams.subscription_data
- Add support for new value
- #1121 [types] Remove
None
from optional param types
- #1112 Update generated code
- Add support for new resource
Tax.Registration
- Add support for
create
,list
, andmodify
methods on resourceRegistration
- Add support for new resource
- #1115 Types: Add types for
ErrorObject
. - #1116 Types: Use @staticmethod overloads instead of @classmethod to fix MyPy compatibility.
- #1104 Include
py.typed
and enable type annotations for the package- This PR includes
py.typed
and enables inline type annotations for stripe-python package. Inline type annotations will now take precedence over Typeshed for users who use a type checker or IDE. - See a detailed guide on the Github Wiki.
- This PR includes
- #1103 Inner resource classes
- Behavior change: nested json objects will now deserialize into instances of specific classes that subclass
StripeObject
, instead of into genericStripeObject
instances. ⚠️ Behavior change:PromotionCode.restrictions.currency_options
will now deserialize intodict
and notStripeObject
.
- Behavior change: nested json objects will now deserialize into instances of specific classes that subclass
- #1090 Update generated code
- Add support for new value
balance_invalid_parameter
on enumsInvoice.LastFinalizationError
,PaymentIntent.LastPaymentError
,SetupAttempt.SetupError
, andSetupIntent.LastSetupError
- Add support for new value
- #1096 Add @util.deprecated decorator and deprecate
save
. - #1091 APIRequestor: don't mutate incoming multipart headers
- This release changes the pinned API version to
2023-10-16
. Please read the API Upgrade Guide and carefully review the API changes before upgradingstripe-python
. - #1085 Update generated code
- Updated pinned API version
- #1065 Update generated code
- Add support for new resource
Issuing.Token
- Add support for
list
,modify
, andretrieve
methods on resourceToken
- Add support for new resource
-
#1056 Update generated code
-
#1055 Partially type resource methods (no **params)
-
#1057 Add optional types to non-required fields
-
#1054 Types: add deleted field
- #1052 Update generated code
- Add support for new resource
PaymentMethodConfiguration
- Add support for
create
,list
,modify
, andretrieve
methods on resourcePaymentMethodConfiguration
- Add support for new resource
- #1047 Update generated code
- Add support for
capture
,create
,expire
,increment
, andreverse
test helper methods on resourceIssuing.Authorization
- Add support for
create_force_capture
,create_unlinked_refund
, andrefund
test helper methods on resourceIssuing.Transaction
- Add support for
- #1049 Types: datetimes to ints, add enum support
- #1030 Explicitly define CRUDL methods in each resource
- #1050 Generate explicit nested resource class methods
- #1033 Update generated code
- Add support for new resource
PaymentMethodDomain
- Add support for
create
,list
,modify
,retrieve
, andvalidate
methods on resourcePaymentMethodDomain
- Add support for new resource
- #1044 Types: ExpandableField
- #1043 Types: ListObject
- #1024 Update generated code
- Add support for new resource
AccountSession
- Add support for
create
method on resourceAccountSession
- Add support for new resource
- #1032 Types for CRUDL methods on parents
-
#1001 #1008 Remove support for Python 2.
- The last version of stripe-python that supports Python 2 is 5.5.0. The Python Software Foundation (PSF) community announced the end of support of Python 2 on 01 January 2020. To continue to get new features and security updates, please make sure to update your Python runtime to Python 3.6+.
-
#987
⚠️ ⚠️ Pin to the latest API version⚠️ ⚠️ In this release, Stripe API Version
2023-08-16
(the latest at time of release) will be sent by default on all requests. The previous default was to use your Stripe account's default API version.To successfully upgrade to stripe-python v6, you must either
-
(Recommended) Upgrade your integration to be compatible with API Version
2023-08-16
.Please read the API Changelog carefully for each API Version from
2023-08-16
back to your Stripe account's default API version. Determine if you are using any of the APIs that have changed in a breaking way, and adjust your integration accordingly. Carefully test your changes with Stripe Test Mode before deploying them to production.You can read the v6 migration guide for more detailed instructions.
-
(Alternative option) Specify a version other than
2023-08-16
when initializingstripe-python
.If you were previously initializing stripe-python without an explicit API Version, you can postpone modifying your integration by specifying a version equal to your Stripe account's default API version. For example:
import stripe stripe.api_key = "sk_test_..." + stripe.api_version = '2020-08-27'
If you were already initializing stripe-python with an explicit API Version, upgrading to v6 will not affect your integration.
Read the v6 migration guide for more details.
Going forward, each major release of this library will be pinned by default to the latest Stripe API Version at the time of release.
That is, instead of upgrading stripe-python and separately upgrading your Stripe API Version through the Stripe Dashboard, whenever you upgrade major versions of stripe-python, you should also upgrade your integration to be compatible with the latest Stripe API version.
-
-
#1013
⚠️ Removed @test_helper decorator- This is technically breaking but unlikely to affect most users.
-
#1015
⚠️ Assert types of pagination responses- Pagination will raise an exception if the API response is not of the correct type. This should never happen in production use but may break tests that use mock data.
- #990 Update generated code
- Add support for new resource
Tax.Settings
- Add support for
modify
andretrieve
methods on resourceSettings
- Add support for new resource
- #951 Update generated code
- Remove support for
create
method on resourceTax.Transaction
- This is not a breaking change, as this method was deprecated before the Tax Transactions API was released in favor of the
create_from_calculation
method.
- This is not a breaking change, as this method was deprecated before the Tax Transactions API was released in favor of the
- Remove support for
- #947 Update generated code
- Add support for new resources
Tax.CalculationLineItem
,Tax.Calculation
,Tax.TransactionLineItem
, andTax.Transaction
- Add support for
create
andlist_line_items
methods on resourceCalculation
- Add support for
create_from_calculation
,create_reversal
,create
,list_line_items
, andretrieve
methods on resourceTransaction
- Add support for new resources
- #924 API Updates
- Add support for
refund_payment
method on resourceTerminal.Reader
- Add support for
- #923 Bugfix: revert "Pass params into logger.{info,debug}"
- #920 API Updates
- Add support for
resume
method on resourceSubscription
- Add support for
- #913 Pass params into logger.{info,debug}
Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-11-15.
"
-
#895 Next major release changes
-
#889 API Updates
-
#888 Do not run Coveralls if secret token is not available
-
#875 hide misleading ssl security warning in python>=2.7.9
- Dropped support for Python version 3.4 and 3.5 (#881). We now support Python 2.7 or 3.6+.
- Fixed mistyped names for two OAuth exceptions:
UnsupportedGrantTypError
->UnsupportedGrantTypeError
andUnsupportedResponseTypError
->UnsupportedResponseTypeError
(#872).
- Deprecate
save
method on resources (#887). Usemodify
instead.# Before customer = stripe.Customer.retrieve("cus_123") customer.email = "[email protected]" customer.save() # After stripe.Customer.modify("cus_123", email="[email protected]")
- Removed
Orders
resource (#882). - Removed
SKU
resource (#883).
- #877 API Updates
- Add
upcoming_lines
method to theInvoice
resource.
- Add
- #873 Add abstract methods for SearchableAPIResource
- #867 API Updates
- Update links in documentation to be absolute.
- #861 API Updates
- Add support for new resource
CustomerCashBalanceTransaction
- Add support for new resource
- #860 Add a support section to the readme
- #717 Fix test TestCharge.test_is_saveable().
- #855 Fix issue where auto_paging_iter failed on nested list objects.
- #850 Fix incorrect handling of additional request parameters
- Fixes issue where using special parameter like
api_key
,idempotency_key
,stripe_version
,stripe_account
,headers
can cause aReceived unknown parameter error
.
- Fixes issue where using special parameter like
Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the SDK, read more detailed description at https://github.com/stripe/stripe-python/wiki/Migration-guide-for-v4. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-08-01.
"
- #847 API Updates
- #845 Next major release changes
- #836 API Updates. Add Price.create tests.
- #835 API Updates. Use auto-generation for credit_note and invoice methods.
- Removed deprecated
AlipayAccount
,BitcoinReceiver
,BitcoinTransaction
,IssuerFraudRecord
,Recipient
,RecipientTransfer
, andThreeDSecure
classes. - Removed deprecated
Charge.update_dispute
andCharge.close_dispute
methods that were using legacy REST API endpoint. Prefer Dispute.modify and Dispute.close - Removed deprecated
Card.details
method andCardDetails
resource. The REST API endpoint is not longer supported. - Removed the deprecated
Source.source_transactions
method. PreferSubscriptionItem.list_source_transactions
- Removed the deprecated
SubscriptionItem.usage_record_summaries
method. PreferSubscriptionItem.list_usage_record_summaries
- Removed the deprecated
Charge.refund
method. Prefer Refund.create
- To be consistent with other resource methods,
ApplicationFee.refund
returns an instance ofApplicationFee
and doesn't mutate the instance ofApplicationFee
. - To be consistent with other resource methods, the
Customer.delete_discount
no longer resets thediscount
property toNone
and returns the deleted discount instead. If you were relying on this behavior, reset the discount property manually: - The
LineItem
resource now inherits fromStripeObject
as it has no methods of it's own. - To be consistent with other resource methods, the
Subscription.delete_discount
returns an instance of deleted discount and doesn't mutate the instance ofSubscription
. - Update the CA certificate bundle.
- Request sending logic unified across standard and custom methods (stripe#832)
- #831 API Updates
- Add support for
deliver_card
,fail_card
,return_card
, andship_card
test helper methods on resourceIssuing.Card
- Switch from using
instance_url
to computing method path in place for custom methods. - Switch from using explicit class methods for test helpers instead of using meta-programming.
- Add support for
- #824 API Updates
- Add support for
fund_cash_balance
test helper method on resourceCustomer
- Add support for
- #823 Trigger workflows on beta branches
- #818 fix: Update cash balance methods to no longer require nested ID.
- #812 API Updates
- Add support for new resource
Apps.Secret
- Add support for new resource
- #810 API Updates
- Add support for new resources
Treasury.CreditReversal
,Treasury.DebitReversal
,Treasury.FinancialAccountFeatures
,Treasury.FinancialAccount
,Treasury.FlowDetails
,Treasury.InboundTransfer
,Treasury.OutboundPayment
,Treasury.OutboundTransfer
,Treasury.ReceivedCredit
,Treasury.ReceivedDebit
,Treasury.TransactionEntry
, andTreasury.Transaction
- Add support for
retrieve_payment_method
method on resourceCustomer
- Add support for
list_owners
andlist
methods on resourceFinancialConnections.Account
- Add support for new resources
- #719 Set daemon attribute instead of using setDaemon method that was deprecated in Python 3.10
- #767 Bump vendored six to 1.16.0
- #806 Start testing on pypy-3.8
- #811 Add sanitize_id method
- #809 Release of major version v3.0.0. The migration guide contains more information.
(
⚠️ = breaking changes):⚠️ Replace the legacyOrder
API with the newOrder
API.- New methods:
cancel
,list_line_items
,reopen
, andsubmit
- Removed methods:
pay
andreturn_order
- Removed resources:
OrderItem
andOrderReturn
- New methods:
⚠️ Renamefinancial_connections.account.refresh
tofinancial_connections.refresh_account
- Add support for
amount_discount
,amount_tax
, andproduct
onLineItem
- #808 API Updates
- Add support for new resources
FinancialConnections.AccountOwner
,FinancialConnections.AccountOwnership
,FinancialConnections.Account
, andFinancialConnections.Session
- Add support for new resources
- #805 API Updates
- Add support for new resource
CashBalance
- Add support for new resource
- #796 API Updates
- Add support for
expire
test helper method on resourceRefund
- Add support for
- #792 #794 #795 API Updates
- Add support for new resources
FundingInstructions
andTerminal.Configuration
- Add support for new resources
- #791 API Updates
- Add support for
increment_authorization
method on resourcePaymentIntent
- Add support for
- #788 API Updates
- Add support for
apply_customer_balance
method on resourcePaymentIntent
- Add support for
- #785 API Updates
- Add support for
cancel_action
,process_payment_intent
,process_setup_intent
, andset_reader_display
methods on resourceTerminal.Reader
- Add support for
- #783 API Updates
- Add support for Search API
- Add support for
search
method on resourcesCharge
,Customer
,Invoice
,PaymentIntent
,Price
,Product
, andSubscription
- Add support for
- Add support for Search API
- #784 Pin click dependency to 8.0.4 to avoid breakage in black
- #773 Add infrastructure for test-helper methods
- #782 Revert Orders to use qualified name for upload_api_base
- #781 API Updates
- Add support for
cancel
method on resourceRefund
- Add support for
- #777 Add support for SearchResult.
- #774 API Updates
- Add support for new resource
TestHelpers.TestClock
- Add support for new resource
- #771 API Updates
- Add support for
verify_microdeposits
method on resourcesPaymentIntent
andSetupIntent
- Add support for
- #757 Update class custom methods to save list object parameters.
- #756 Introduce custom listing methods on objects.
- #754 Clarify metadata deletion message.
- #748 API Updates
- Add support for new resource
ShippingRate
- Add support for new resource
- #745 API Updates
- Add support for
expire
method on resourceCheckout.Session
- Add support for
- #738 API Updates
- Add support for
list_payment_methods
method on resourceCustomer
- Add support for
- #736 Stop sending raw exception message as part of Stripe user agent.
- #728 API Updates
- Add support for
list_computed_upfront_line_items
method on resourceQuote
- Add support for
- #722 API Updates
- Add support for new
TaxCode
API.
- Add support for new
- #720 Add support for Identity VerificationSession and VerificationReport APIs
- #713 Add support for the Billing Portal Configuration API
- #704 Fix CA bundle path issue
- #698 Fix issue where StripeObjects in lists would not be converted to dicts
- #699 Start testing Python 3.9
- #691 Include the examples in the built sources
- #684 Add support for the Payout Reverse API
- #681 Add support for the
SetupAttempt
resource and List API - 2.52.0 and 2.53.0 were empty releases that contained no additional changes.
- #676 Add support for the Issuing Dispute Submit API
- #669 Add support for the
PromotionCode
resource and APIs
- #665 Support stripe.File.create(stripe_version='...')
- #655 Add support for the
LineItem
resource and APIs
- #652 Add support for the
Price
resource and APIs
- #651 Add support for
billing_portal
namespace andSession
resource and APIs
- #648 Add support for Express links in
authorize_url
forOAuth
- #646 Allow overriding API key in OAuth methods
- #644 Add support for listing Checkout
Session
- #636 Fix uploading files with Unicode names (Python 2.7)
- #635 Update Python API docs inline link
- #631 Update
proxy.py
- #630 Add support for
CreditNote
preview
- #627 Add list_usage_record_summaries and list_source_transactions
- #625 Add support for
Mandate
- #621 Implement support for stripe-should-retry and retry-after headers
- #620 Check that
error
is a dict before trying to use it to create aStripeError
- #614 Use
OrderedDict
to maintain key order in API requests and responses
- #612 Use
ListObject
properties as default values in request methods
- #610 Add support for header parameters in
ListObject
request methods
- #607 Add
SubscriptionItem.create_usage_record
method
- #604 Remove subscription schedule revisions
- This is technically a breaking change. We've chosen to release it as a minor vesion bump because the associated API is unused.
- #601 Add support for passing full objects instead of IDs to custom methods
- #603 Bump vendored six to latest version
- #599 Fix
del
statement to not raiseKeyError
- #595 Listing
BalanceTransaction
objects now uses/v1/balance_transactions
instead of/v1/balance/history
- #592 Fix argument name conflict
- #590 Add support for the
SetupIntent
resource and APIs
- #587 Enable request latency telemetry by default
- #589 Fix support for
CustomerBalanceTransaction
- #564 Add support for
CustomerBalanceTransaction
resource and APIs
- #583 Remove Poetry and reinstate
setup.py
Version 2.29.2 was non-functional due to a bugged version.py
file. This release is identical to 2.29.2 save for the version number.
- #561 Replace pipenv with poetry
- #578 Verify signatures before deserializing events
- #575 Add support for
radar.early_fraud_warning
resource
- #574 Fix a few more code quality issues
- #572 Fix a few code quality issues
- #566 Add support for the
Capability
resource and APIs
- #554 Add support for the
TaxRate
resource and APIs
- #555 Add support for the
TaxId
resource and APIs
- #551 Add support for the
CreditNote
resource and APIs
- #550 Fix encoding of nested parameters in multipart requests
- #543 Add
delete
class method on deletable API resources - #547 Add class methods for all custom API requests (e.g.
Charge.capture
)
- #537 Add support for the
PaymentMethod
resource and APIs - #540 Add support for retrieving a Checkout
Session
- #542 Add support for deleting a Terminal
Location
andReader
- #541 Add
stripe.util.convert_to_dict
method for convertingStripeObject
instances to regulardict
s
- #532 Add support for subscription schedules
- #530 Fix client telemetry implementation
- #534 Fix session initialization for multi-threaded environments
- #531 Make
RequestsClient
thread-safe
- #526 Reuse the default HTTP client by default
- #524 Rename
CheckoutSession
toSession
and move it under thecheckout
namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach.
- #525 Properly serialize
individual
onAccount
objects
- #518 Add configurable telemetry to gather information on client-side request latency
- #510 Add support for Checkout sessions
- #507 Add support for account links
- #503 Add support for providing custom CA certificate bundle
- #500 Add support for
Review
for Radar
- #489 Add support for
ValueList
andValueListItem
for Radar
- #495 Make
StripeResponse
a new-style class
- #483 Add new API endpoints for the
Invoice
resource.
- #491 Bump minimum requests version to 2.20.0 (for CVE-2018-18074)
- #481 Correct behavior of
stripe.max_network_retries
if it's reset after initial use
- #478 Add support for Stripe Terminal
- #477 Rename
FileUpload
toFile
- #470 Add support for automatic network retries
- #469 Add support for reporting resources
- #467 Add support for usage record summaries
- #463 Remove unsupported Bitcoin endpoints (this is technically a breaking change, but we're releasing as a minor version because none of these APIs were usable anyway)
- #456 Add support for Sigma scheduled query run objects
- #455 Add support for Stripe Issuing
- #452 Add
InvoiceLineItem
class
- #450 Internal improvements to
ApiResource.class_url
- #448 Avoid duplicate dependency on
requests
with Python 2.7
- #445 Fix
setup.py
Major version release. List of backwards incompatible changes to watch out for:
- The minimum Python versions are now 2.7 / 3.4. If you're using Python 2.6 or 3.3, consider upgrading to a more recent version.
- Stripe exception classes should now be accessed via
stripe.error
rather than juststripe
- Some older deprecated methods have been removed
- Trying to detach an unattached source will now raise a
stripe.error.InvalidRequestError
exception instead of aNotImplementedError
exception
For more information, check out the migration guide for v2
Pull requests included in this release:
- #385 Drop support for Python 2.6 and 3.3
- #384 Use py.test for tests
- #399 Remove deprecated code
- #402 Remove
util.json
and usejson
module directly everywhere - #403 Update setup.py and test flow
- #410 Use pipenv
- #415 Change exception when detaching unattached sources from
NotImplementedError
tostripe.error.InvalidRequestError
- #441 Better (hopefully) fix for serialization of empty
ListObject
s
- #439 Fix serialization of empty
ListObject
s
- #436 Add support for payment intents
- #437 Add support for
partner_id
instripe.set_app_info()
- #365 Add
__repr__
methods toStripeError
exception classes
- #430 Handle the case where request ID is
None
when formatting errors
- #422 Add
user_mesage
toStripeError
for a way in Python 3 to avoid the "Request req_...:" string normally appended to error messages
- #425 Add support for issuer fraud records
- #421 Add support for flexible billing and usage records
- #401 Drop conditional dependencies that incorrectly led to an added
simplejson
dependency in Python 3+ after switching to universal wheel
- #396 Add support for topups
- #394 Make
last_response
available after callingsave()
- #389 Register unsaved attributes on assignment regardless of new value
- #371 Add accessor
last_response
onStripeObject
for accessing request ID and other metadata
- #382 Add new
IdempotencyError
type
- #378 Log encoded version of parameters instead of raw POST data
- (Accidental no-op release. See 1.75.3.)
- #372 Add only changed values to
_unsaved_values
inStripeObject
- #375 Use a custom JSON encoder to handle
datetime
objects when serializingStripeObject
s
- #369 Make custom actions on various resources (e.g.
Account.reject
) more consistent with other APIs
- #368 Remove API that allowed the creation of new disputes (this was an erroneous addition; it never worked because the API would not allow it)
- #364 Switch to vendored version of the
six
package for compatibility between Python 2 and 3
- #361 Support for exchange rates APIs
- #362 Fix balance transaction and invoice item conversion into
StripeObject
s
- #360 Fix
BytesWarning
being issued on logging in Python 3
- #359 Support for listing source transactions
- #356 Support uploading files with
StringIO
in addition to a file on disk
- #351 Break resource.py module into separate ones for each type of resource
- Classes are still into resource.py for backwards compatibility
- #353 Fix unpickling
StripeObject
in Python 3
- #350 Add static methods to manipulate resources from parent
Account
gains methods for external accounts and login links (e.g..create_account
,create_login_link
)ApplicationFee
gains methods for refundsCustomer
gains methods for sourcesTransfer
gains methods for reversals
- #349 Rename source
delete
todetach
(and deprecate the former)
- Support length reads on list objects
- Handle
bytearray
andbytes
(in addition to string) inWebhook.construct_event
- Add support for passing a
stripe_version
argument to all API requests
- Error when an invalid type (i.e. non-string) passed as an API method argument
- Fix serialization of
items
on Relay order creation and order return
- Add support for
InvalidClientError
OAuth error
- Change serialization of subscription items on update to encoded as an integer-indexed map
pay
on invoice can now take parameter
- Expose
code
onInvalidRequestError
- Add support for ephemeral keys
- Refactor OAuth implementation to have dedicated classes for errors
- Re-use connections with Pycurl
- Fix the pycurl client
- Add
api_key
parameter to webhook'sconstruct_event
- Add support for account login links
- Remove Requests constraint from 1.55.1 now that they've patched (as of 2.14.2)
- Constrain Requests to < 2.13.0 if on setuptools < 18.0.0
- Support for checking webhook signatures
- Add
stripe.set_app_info
for use by plugin creators
- Add support for payouts and recipient transfers
- No-op release: peg test suite to a specific API version
- Support OAuth operations (getting a token and deauthorizing)
- Support for detaching sources from customers
- Accept
session
argument forRequestsClient
- Fix encoding of parameters when fetching upcoming invoices
- Add
Account.modify_external_account
to modify an account in one API call - Add
Customer.modify_source
to modify a source in one API call
- Allow sources to be updated
- Use internal session for Requests for connection pooling
- request logging goes to stderr now
- Logs properly handle unicode
- Format is now the same between logging logs, and console logs
- Add request logging and some mechanisms to enable it when debugging
- Add support for verifying sources
- Add retrieve method for 3-D Secure resources
- Implement copy and deepcopy on StripeObject to fix these operations
- Add
Source
model for generic payment sources
- Return subscription model instance on subscription create/modify
- Add configurable timeout for Requests HTTP library
- Add support for subscription items
- Add proxy support for pycurl, Requests, urlfetch, and urllib2 libraries
- Add support for Apple Pay domains
- Add
ThreeDSecure
model for 3-D secure payments
- Add
update
class method to resources that can be updated
- Add support for returning Relay orders
- Add support for Alipay accounts
- Add support for the new
/v1/subscriptions
endpointstripe.Subscription.retrieve
stripe.Subscription.update
stripe.Subscription.create
stripe.Subscription.list
- Fix bug where file uploads could not be properly listed
- Fix bug where request parameters were not passed between pages with
auto_paging_iter
- Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
- Fix uploading of binary files in Python 3
- Add
reject
onAccount
to support the new API feature
- Add
CountrySpec
model for looking up country payment information
- Update bundled CA certs
- Add support for deleting Relay products and SKUs
- Add an automatic paginating iterator to lists available via
auto_paging_iter
- List objects are now iterable
- Error messages set to
None
are now handled properly - The
all
method on list objects has been deprecated in favor oflist
- Calls to
instance_url
are now side effect free
- Official Python 3.4 & 3.5 compatibility
- Add configurable HTTP client
- Add ability to delete attributes
- Products, SKUs, Orders resources
- Add support for new 429 rate limit response
- Added refund listing, creation and retrieval
- Fix error handling for Python 2.6
- Managed accounts can now be deleted
- Added dispute listing and retrieval
- Include response headers in exceptions
- Fix saving
additional_owners
on managed accounts
- Fix saving manage accounts
- Pass
stripe_account
to Balance.retrieve
- Added methods for updating and saving arrays of objects
- Added Bitcoin Receiver update and delete methods
- Remove support for top-level bitcoin transactions
- Adding bitcoin receiver and transaction objects
- Adding support for file uploads resource
- Remove redundant manual SSL blacklist preflight check
- Application Fee refunds now a list instead of array
- Add metadata for disputes and refunds
- Remove official support for Python 2.5
- Support for canceling transfers
- Support cards for recipients.
- Disable loading the ssl module on the Google App Engine dev server.
- Use DER encoded certificate for checksumming
- Don't rely on SNI support in integration tests
- Update bundled ca-certificates
- Add certificate blacklist for CVE-2014-0160 mitigation
- Fix syntax errors in setup.py metadata
- Added license and other metadata in setup.py
- Fix
__repr__
in Python 3 - Support pickling of responses
- Added support for multiple subscriptions per customer
- Added extensive unit tests
- Extended functional test coverage
- Refactored code into modules and out of stripe/init.py
- Abstracted http library selection and use from the
APIRequestor
intostripe.http_client
- Refactored
StripeObject
to inherit fromdict
and avoid direct access of__dict__
. - PEP8ified the codebase and enforced with a test.
- Proper encoding of timezone aware datetimes
- The
to_dict
andvalues
methods on resources no longer recursively convert objects to plaindict
s. All resources now inherit fromdict
but are functionally different in that you cannot set a value to an empty string and cannot delete items. - The
previous_metadata
attribute on resources is now protected. - Timezone aware
datetime
objects passed to the API will now be encoded in a way that does not depend on the local system time. If you are passing timezone-aware datetimes to our API and your server time is not already in UTC, this will change the value passed to our API.
- Add stripe.ApplicationFee resource
- Removed incorrect test.
- Add support for metadata.
- Fix issue with support for closing disputes.
- Add support for closing disputes.
- Add stripe.Balance and stripe.BalanceTransaction resources
- Add support for unsetting attributes by setting to None. Setting properties to a blank string is now an error.
- Add support for multiple cards API
- Remove 'id' from the list of permanent attributes
- Support for Python 3 (github issue #32)
- Allow transfers to be creatable
- Add new stripe.Recipient resource
- Add 'id' to the list of permanent attributes
- Add support for passing options when retrieving Stripe objects; e.g., stripe.Charge.retrieve("foo", params={"expand":["customer"]})
- Add support for setting a Stripe API version override
- Update requests version check to work with requests 1.x.x (github issue #24)
- Add support for updating charge disputes
- Add support for creating invoices
- Add support for new invoice lines return format
- Add support for new List objects
- Add update and pay methods for Invoice resource
- Add new stripe.Account resource
- Remove uncaptured_charge tests (this has been deprecated from the API).
- Fix a bug that would cause nested objects to be mis-rendered in str and repr methods (github issues #17, #18)
- Prefer App Engine's urlfetch over requests, as that's the only thing that will work in App Engine's environment. Previously, if requests was available in the App Engine environment, we would attempt to use it.
- Add new delete_discount method to stripe.Customer
- Add new stripe.Transfer resource
- Switch from using HTTP Basic auth to Bearer auth. (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward)
- Numerous test suite improvements
- Parameters with value None are no longer included in API requests