Legacy
Version history and release notes for async-stripe
1.0 Alpha
Breaking Changes
This release overhauls the code generation process to achieve near-complete coverage of the Stripe API (https://github.com/arlyon/async-stripe/issues/32). To avoid further bloating compile times, it also includes crates splitting. Consequently, there are many breaking changes in this release. If you have any trouble updating to this release or want help with it, please file an issue! There will likely be multiple release candidates, so suggestions are welcome for ways to improve ergonomics along the release candidate trail. This release should not regress compile times, but will not improve them. However, it paves the way for upcoming improvements!
We are still expecting a few breaking changes before RC. We recommend using the in-progress Migration Guide when upgrading.
0.41.0 (2025-04-08)
Features
- include refund events in EventType enum (1a164c8)
0.40.2 (2025-03-21)
Bug Fixes
- Remove quotes from EventType display (4b0deeb)
0.40.1 (2025-03-18)
Bug Fixes
- Make customer session module public (f149d15)
0.40.0 (2024-09-26)
Features
0.39.2 (2024-09-24)
Bug Fixes
- erroneous deref clippy lint (1fcbb29)
0.39.1 (2024-09-03)
Bug Fixes
- correct docs host and path for API references (539836d)
0.39.0 (2024-08-31)
Bug Fixes
post->post_form(bc39260)- Move
promotion_code_exttoproductsfeature (32435f3) - Re-export (24f1782)
Features
- Create promotion code (0fde9eb)
0.38.1 (2024-08-06)
Bug Fixes
0.38.0 (2024-07-31)
Features
0.37.3 (2024-07-29)
Bug Fixes
- linting issue for Rust 1.80 (9232213)
0.37.2 (2024-07-23)
Bug Fixes
- rtx id prefix (67ea232)
0.37.1 (2024-05-24)
Bug Fixes
0.37.0 (2024-04-30)
Bug Fixes
- customer-ext,PM query: type field is optional (362659e)
Features
- setup_intent: add mandate_data for confirm (51e34d6)
- setup_intent: verify microdeposits flow (15b3663)
0.36.0 (2024-04-30)
Features
- Add
retrieve_line_itemsfunction forCheckoutSession(5c74b3b)
0.35.3 (2024-04-26)
Bug Fixes
- Clippy append instead of extend (1a85b9b)
- Clippy explicit ToString implementation (15250a9)
- Clippy panic warnings (552aff2)
- Clippys from generated code (89cce5b)
- More clippy warnings (6de23bb)
- Remove useless reference that causes clippy warnings (2fca98b)
0.35.2 (2024-04-26)
Bug Fixes
- Clippy warnings (842bce6)
- Implement workaround for ace in the verify-codegen action (79c1f6f)
- Semantic release needs minimal rust version (642ea31)
0.35.1 (2024-04-26)
Bug Fixes
0.35.0 (2024-04-04)
Bug Fixes
- add products to features list in cargo.toml and export from resourses (d26860f)
- export SearchList (a427943)
- Remove "Some()" from RequestError's display (e609cad)
- rename redirect_url to return_url on ConfirmSetupIntent (9da5a28), closes #504
Features
- webhook_events: support construct_event with timestamp (88fe501)
0.34.2 (2024-02-21)
Bug Fixes
- correctly generate types for optional lists (63732cc)
0.34.1 (2024-02-15)
Bug Fixes
- fixes an issue with missing renames of Self_ (9c58038)
0.34.0 (2024-02-15)
Features
- generate latest changes from OpenApi spec (a3b0e4d)
0.33.1 (2024-02-08)
Bug Fixes
- expose the
auto_advancefield from theFinalizeInvoiceParamsstruct (ae1a807)
0.33.0 (2024-02-02)
Bug Fixes
- support pdp_ as an id prefix for dispute objects (be506d6)
Features
- generate latest changes from OpenApi spec (29a457d)
0.32.0 (2024-01-27)
Features
- generate latest changes from OpenApi spec (19ac377)
0.31.2 (2024-01-24)
Bug Fixes
- currency: add BYN and MMK to currency list (03cddce)
0.31.1 (2024-01-24)
Bug Fixes
- pagination: prevent infinite loop caused by clone (bc20bd4)
0.31.0 (2024-01-24)
Features
- generate latest changes from OpenApi spec (9b3a844)
0.30.1 (2024-01-24)
Bug Fixes
- codegen: generate terminal resource objects (bf7e117)
0.30.0 (2024-01-24)
Bug Fixes
Features
- generate latest changes from OpenApi spec (d0cbc71)
0.29.0 (2024-01-10)
Features
- generate latest changes from OpenApi spec (32e802e)
0.28.1 (2024-01-10)
Bug Fixes
- add plan prefix to PriceId (6655058)
0.28.0 (2023-12-08)
Features
- generate latest changes from OpenApi spec (4c25649)
0.27.0 (2023-12-01)
Bug Fixes
- add support for atxi id prefix (414d534)
Features
0.26.0 (2023-10-31)
Features
- fixed bool value (c752f52)
- fixed bool value (153d63d)
- fixed mutability (86aabdd)
- fixed mutability (5ad76c5)
- fixed warnings (30f0a1e)
- fixed warnings (e0d0bd8)
- updated ListPaginator to be generic over type T where T impl PaginableList instead of having separate SearchListPaginator and ListPaginator implementations for types SearchList and List. (9d49602)
- updated ListPaginator to be generic over type T where T impl PaginableList instead of having separate SearchListPaginator and ListPaginator implementations for types SearchList and List. (411f82c)
0.25.2 (2023-10-05)
Bug Fixes
- prevent panic on StatusCode conversion (9b94228)
0.25.1 (2023-09-27)
Bug Fixes
- respect the required and optional fields for EventType and Metadata (cdabd2e)
0.25.0 (2023-09-25)
Features
- generate latest changes from OpenApi spec (652a360)
0.24.0 (2023-09-21)
Features
- Generate latest changes from OpenApi spec (7421960)
- Generate latest changes from OpenApi spec (2fedb71)
0.23.0 (2023-09-06)
Bug Fixes
Features
- add support for connect tokens (b7c5489)
- add tax calculation api behind a feature (2266ed1)
- handle currency_options (1bb8165)
0.22.2 (2023-05-11)
Bug Fixes
- Add sis_ id prefix for usage record summaries (1042493)
0.22.1 (2023-05-09)
Bug Fixes
- Move feature check to
build.rs(8d06be0)
0.22.0 (2023-04-18)
Features
- generate latest changes from OpenApi spec (a76703c)
0.21.0 (2023-04-06)
Bug Fixes
Features
- use codegen version of WebhookEvent rather than overriding manually (8347a6d)
0.20.2 (2023-04-05)
Bug Fixes
- generate api version from the codegen (3006688)
0.20.1 (2023-03-23)
Bug Fixes
- Use
HashMap::from(0c8dc9d)
0.20.0 (2023-03-09)
Features
- Implement Balance retrieve (7509c98)
0.19.0 (2023-03-05)
Features
- add CreditNote and CustomerBalanceTransaction (dc82e59)
0.18.4 (2023-03-05)
Bug Fixes
- add missing prefix for CheckoutSessionItemId (c6bdb57)
0.18.3 (2023-02-20)
Bug Fixes
- reexport duplicate SubscriptionPaymentBehaviour (dbcff41)
0.18.2 (2023-02-04)
Bug Fixes
- prevent publishing the benchmark crate (e4be54d)
0.18.1 (2023-02-04)
Bug Fixes
- prevent publishing the openapi crate (6de846e)
0.18.0 (2023-02-04)
Features
- fn to expire checkout sessions (0368c79)
0.17.0 (2023-02-01)
Features
- improve api doc code to fix / add more coverage (fecaa2e)
0.16.0 (2023-01-17)
Bug Fixes
- prevent freeze when hitting network errors in a retry strategy (d423be2)
Features
- add support for webpki (alt. to native-certs) (c994b1c)
0.15.2 (2023-01-17)
Bug Fixes
- add automated release config (ac5a87a)
Version 0.15.1 (January 16, 2022)
This is a half-release before we overhaul the codegen in 0.16. I want to give a special shoutout to @mzeitlin11 who has been doing some excellent work behind the scenes cleaning up the codegen.
Features
- add a number of missing ids to
ids.rs - add a number of missing prefixes to
ids.rs - restore
serde_path_to_errorto give better error messages when parsing responses from the API - add api to retrieve checkout session
- add api to cancel a setup intent
Fixes
- export the
generatedmodules so that overlapping apis can be reached by their path - handle the
idempotency_errorerror variant - allow blocking client to be used in a multithreaded scenario
- disable connection pooling to prevent API errors
Version 0.15.0 (June 9, 2022)
This release comes with some improvements to list traversal as well as dramatic expansion of the api surface when dealing with webhooks!
Features
- BREAKING: list methods now only borrow their parameters
- Add a streaming api for lazily and ergonomically traversing lists
- Exported the stripe terminal APIs
- Significantly more webhook types now available
Fixes
- List traversals now properly include parameters when fetching later list items
Version 0.14.1 (May 20, 2022)
This release is a minor patch release to fix an oversight in the API.
Fixes
- Expose the request strategy API
Version 0.14.0 (March 22, 2022)
This release has been focused on refining the ergonomics supporting additional stripe APIs, and adding retries / idempotency.
Features
- BREAKING: fluent client config api.
- Add the
cardparam to the codegen. (@erichCompSci) - Derive
Defaultacross the codebase. - Opt-in idempotency functionality. (@erichCompSci)
- Opt-in retry logic.
In addition we have expanded the test coverage, and will continue to do so with more examples.
Version 0.13.0 (January 22, 2021)
First release of async-stripe with swappable runtimes.
Breaking Changes
- You will now need to select a runtime to use the library.
- There may be small breaks in other places in the api.
Version 0.12.3 (May 16, 2020)
Fixes
- Fix failing
Invoice::upcomingby adding ais_nonerepresentation to InvoiceId (@bryanburgers)
Version 0.12.2 (May 15, 2020)
Features
- Enable RustTLS behind a feature flag (@kiljacken)
Fixes
- Add missing values to
PaymentMethodTypeandPaymentIntentMethodType(@ThouCheese)
Version 0.12.1 (February 6, 2020)
Fixes
- Fixed deserialization of
ChargeIds withpy_prefix inPaymentIntentevent(s).
Version 0.12.0 (February 3, 2020)
Breaking Changes
-
Updated to a newer version of the Stripe API.
-
The
PaymentIntent<___>Paramsstructs have been renamed to be consistent with the autogenerated APIe.g.
PaymentIntentCreateParamshas becomeCreatePaymentIntent
Features
- The
app-infoheader can now be set/customized with theClient::set_app_infomethod.
Improvements
-
New feature flags have been introduced to disable unused parts of the stripe APIs. This helps reduce binary bloat and compile time.
-
The async client has been updated to use
std::future::Future. Theasyncfeature flag is deprecated. Prefer{ default-features = false, features = ["full"] }instead. -
Set default stripe api version to the latest version supported by the library. This is intended to avoid bugs where a later version of stripe is enabled by a customer.
Feature Flags
By default the full stripe api is enabled.
To reduce code size, disable default features and enable just the APIs you use:
# Example: Core-only (enough to create a `Charge` or `Card` or `Customer`)
stripe-rust = { version = "*", default-features = false, features = ["blocking"] }
# Example: Support for "Subscriptions" and "Invoices"
stripe-rust = { version = "*", default-features = false, features = ["blocking", "billing"] }Refer to the Stripe API docs to determine which APIs are included as part of each feature flag.
Version 0.11.0 (September 11, 2019)
Features
- The
stripe-versionheader can now be set/customized with theClient::with_headersmethod.
Improvements
- The
Defaulttrait is now derived for all structs that have only defaultable parameters. Webhook::construct_eventtakes payload, signature, and secret args by ref (&str) instead of value.- The
payment_methodandconfirmation_methodfields were added toPaymentIntentCreateParams. - The
payment_method_detailsstructure now supports thecarddata field.
Fixes
- Boolean fields that may be
null, are nowOptioninstead ofserde(default). - The
Customervariant was added to theEventObjectenum. - The
PaymentIntentCaptureParamsare now correctlypub. - Fixed parsing a negative customer
account_balance.
Version 0.10.5 (July 25, 2019)
Breaking Changes
- The
PaymentSourceParamsstruct was edit to only include aTokenIdandSourceIdas per improvements to the API. - The
charge.sourcefield to create aChargewas fixed to accept the new structChargeSourceParams.
Version 0.10.4 (July 12, 2019)
Improvements
- Added
idfield toEvent
Fixes
- Fixes a regression deriving
EqandPartialEqforPaymentIntentenums.
Version 0.10.3 (June 21, 2019)
Fixes
- Fixed deserialization of
CheckoutSessionCompletedevents. - Added missing
Invoiceevents.
Version 0.10.2 (June 13, 2019)
Fixes
- Fixed the
InvoiceLineItemIdtype to correctly handle subscription items.
Version 0.10.0 / 0.10.1 (June 4, 2019)
This version uses code generation to generate the stripe API according to the openapi spec.
This contains major breaking changes from previous versions, both because many structures were out of date and because some changes were made to make things easier to generate.
New Features
-
Many new APIs have now been implemented (mostly CRUD); some requests are still missing because not all requests are automatically implemented. All previously implemented requests are still implemented (even if they couldn't be code-generated).
-
Many requests now take the
expandparameter which controls whether more data should be returned forExpandable<T>fields. Previously these fields were just id types.
Improvements
- Fields and requests have descriptive documentation rather than just referring to the stripe API docs.
- Ids and fields are more strictly typed (newtypes vs raw strings).
- Ids no longer need to be allocated and are cheaply clonable (in almost all cases).
- Enum types now implement
DisplayandAsRef<str>.
Version 0.9.2 (April 7, 2019)
Fixes / Improvements
- Add missing
producttoPlan. - Add missing
receipt_urltoCharge. - The deprecated
closedfield inInvoiceis now optional. - Fix allowing the
descriptionfield inPayoutto be optional. - Fix allowing a
SubscriptionItemquantity to beNone(e.g. when using metered pricing API). - Fix signature checking for received Webhooks.
- Allow the timestamp to be manually specified when verifying webhook signature.
Version 0.9.1 (Feb 4, 2019)
Fixes
- Detach source data structure is a new
DetachedSourceenum - The
objectfield was removed fromPaymentIntent,RefundandPayout. - Fields in
PaymentIntentwere updated to correctly be optional
Version 0.9.0 (Jan 17, 2019)
New Features
- Added an
asyncfeature flag which removesstripe::Clientand addsstripe::async::Client.
Breaking Changes
- The
stripe::Paramstyped was renamed toHeadersto avoid confusion with otherFooParamstypes and theparamsmodule.
Version 0.8.0 (Jan 15, 2019)
New Features
- Added
verify_bank_accounttoCustomerresource. - Added BankAccount as a variant of
PaymentSource. - Add the PaymentIntents resources, apis and events.
Breaking Changes
- Minimum Rust version required is 1.31.1.
- Moved
retrieve_sourceanddetach_sourcetoCustomerresource fromSource. - The
Error::Conversionenum variant has been replaced byError::SerializeandError::Deserialize. - See also Fixes / Improvements.
Fixes / Improvements
- TokenId has become an enum to account for different Token options
- Updated fields on
BankAccountresource so all are correct. - The
PayoutandRefundtypes now use enums instead of Strings. - The
WebhookErrortype is now externally public.
Version 0.7.2
Fixes
- Fix sending
metadata(and other nested params) as part of a POST request; e.g.Customer::create,Customer::update, etc.
Version 0.7.0 and 0.7.1
Fixes
- The type of
Customer.default_sourcehas changed fromSourceIdtoPaymentSourceId. - The type of
Customer.sourceshas changed fromList<Source>toList<PaymentSource>.
Version 0.6.0
New Features / Improvements
- The
List<T>type has newnextandget_allmethods for pagination. - Struct types more consistently implement
Clone. - Enum types more consistently implement
Copy,Eq, andHash. - More source details (e.g.
ach_credit_transfer, etc) were added toSource. - The blocking api is now backed by
reqwestinstead ofhyper:0.10so that the library is no longer pinned to outdated dependencies. - Added the "webhooks" feature flag for processing events (enabled by default)
to convert
hmacandsha2to optional dependencies.
Breaking Changes
- (Mostly from 0.5.x series)
Charge,Card, andSourcehave been updated to use new enum values rather thanString. - The
SourceTypeenum used by ChargeListParams has been renamed toSourceFilterTypeto remove a conflict with theSourceTypeenum used by the type field of Source.
Fixes
- All
Addressfields have been updated to be optional. - The
Client-Idparam has been added to params to make support for impersonating Connect Accounts compatible with newer stripe api versions.
Version 0.5.3
Changes
- Updated
Chargeto use enum types rather than&strwhere possible.
Version 0.5.2
Changes
- Fixed many issues with the
Sourceobject. - Updated
Cardto use enum types rather than&strwhere possible. - Added many new fields to
Card.
Version 0.5.1
Changes
- Bumped dependency versions
Version 0.5.0 (Sep 26, 2018)
New Features
- Implemented the sources resource and
added the
Sourcetype .
Breaking Changes
- The
CustomerSourceParamsstruct was renamed toPaymentSourceParams. - The
Sourceenum was renamed toPaymentSource(there is a newSourcestruct). - Source and token fields (like
token: &str) now usesource: SourceIdortoken: TokenIdinstead.
General Improvements
- Added missing
default_sourcefield toCustomer. - The
DeserializeandSerializetraits have now been implemented for all param and resource structs. - The
Copy,Clone,Eq,PartialEq, andHashtraits have been derived for flat enum types.
Version 0.4.7 (Jun 11, 2018)
Changes
- Fix, adds all missing error code variants to
stripe::error::ErrorCode.
Version 0.4.6 (Jun 9, 2018)
Changes
- Fixed field
nicknameofPlancan be null.
Version 0.4.5 (Feb 20, 2018)
Changes
- Fixed field
nicknameofPlanshould bename
Version 0.4.4 (Jan 4, 2018)
Breaking Changes
- The
balance_transactionfield ofChargeis nowOption<_>.
Version 0.4.2 (August 20, 2017)
Changes
- Added basic crate documentation
- Added the
invoice.upcomingevent
Version 0.4.1 (August 8, 2017)
Changes
- Add RangeQuery struct for created/date filters in list requests
- Implement
Customer::listrequest (ie. "GET /customers"); Thanks @pocket7878 - Add missing params to
InvoiceListParamsforInvoice::list
Version 0.4.0 (August 2, 2017)
Breaking Changes
- Upgrade Serde to v1.0
Version 0.3.3 (August 1, 2017)
Changes
- Add support for authentication using the Stripe-Account header
- Implement
Eventstruct for implementing a Stripe Webhook (only some events) - Implement
Invoice::updaterequest (ie. POST "/invoices/{invoice_id}") - Implement
InvoiceItem::createrequest (ie. POST "/invoiceitems") - Fix
Subscription::cancelrequest (previously used wrong method/path)
Version 0.3.2 (June 17, 2017)
Changes
- Implemented the
Invoice::listAPI (ie. "/invoices") - Fixed a request encoding error for
Invoice::pay(ie. "/invoices/{invoice_id}/pay") - Fixed fields on
Subscriptionthat could be null but were missingOptional<..> - Added missing
last4field toCardresource - Changed the repository URL
Version 0.3.1 (Mar 31, 2017)
Changes
- Made rust docs slightly easier to read
- Fixed incorrect method name for
Planresource - Use
native-tlsby default and add feature-flag supportingopenssl
Version 0.3.0 (Mar 28, 2017)
New Features
- Implemented the charges resource and
added the
Chargetype.
Breaking Changes
- The
Resource::getrequests have been renamed toResource::retrieve. - The
Subscription::cancelrequest now expectsCancelParamsinstead of expecting a one-off function argument. - Removed the
blamemethod andBlametype from errors. - The
Error::DecodeandError::Encodevariants have been combined into a singleError::Conversionvariant.
General Improvements
- The
Errortype now has easier to read error messages and will parses JSON errors returned by Stripe into a structured error type (RequestError). - Added Travis CI for automated testing on GitHub.
- Added reference documentation to implemented resources (but still no docs at crate/module level nor a "Getting started" guide)
Version 0.2.0 (Mar 17, 2017)
New Features
- Added
Clientwhich is created once with a stripe private key and is intended to be re-used for multiple requests. It implementsSyncso you can share it among multiple threads. - Added new strongly-typed
Currencytype following the example of https://github.com/stripe/stripe-go. Customer::create/CustomerParamsnow support usingCardParamsas a source instead of just tokens.- Implemented the sources API in the
Sourcetype.
Breaking Changes
- All
Paramstypes now use&strfields instead ofStrings. - Requests used to require a
stripe_key: &stras their final argument but now use a&Clientas the first argument instead. - Stripe tokens used to be directly used as a source in
CustomerParamsbut now must be used withCustomerSourceParams::Token("tok_xyzABC123").
General Improvements
- Added remaining fields to
Paramstypes after switching fromserde_urlencodedtoserde_qsto support nested params. - Added the
create_customerexample - Types that implement
Deserializenow also implementDebug. - Types that implement
Serializenow also implementDefault.