- #658 Add support for
partner_id
fromStripe.set_app_info
- #657 Add support for payment intents
- #649 Freeze all string literals
- #645 Add support for issuer fraud records
- #647 Merge query parameters coming from path with
params
argument
- #498 Add support for flexible billing primitives
- #636 Fix a warning for uninitialized instance variable
@additive_params
- #632 Introduce
additive_object_param
so that non-metadata
subobjects don't zero their keys as they're being replaced
- #628 Add support for
code
attribute on all Stripe exceptions
- #627 Add support for topups
- #625 Skip calling
to_hash
fornil
- #616 Support all file-like objects for uploads with duck typed checks on
path
andread
(we previously whitelisted only certain classes)
- #613 Introduce new
IdempotencyError
type for idempotency-specific failures
- #612 Fix integer-indexed array encoding when sent as query parameter (subscription items can now be used when fetching an upcoming invoice)
- #611 Support
Tempfile
(as well asFile
) in file uploads
- #606 Support for exchange rates APIs
- #603 Support for listing source transactions
- #597 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
- #594 Make sure that
StripeObject
's#deep_copy
maintains original class - #595 Allow
Object#method
to be called onStripeObject
even if it conflicts with an accessor - #596 Encode arrays as integer-indexed hashes where appropriate
- #598 Don't persist
idempotency_key
opt between requests
- #592 Bring back
Marshal.dump/load
support with custom marshal encoder/decoder
- #591 Use thread-local
StripeClient
instances for thread safety
- #589 Rename source
delete
todetach
(and deprecate the former)
- #586 Log query strings as well as form bodies with STRIPE_LOG
- #588 Require minimum Faraday 0.10 for bug fix in parameter encoding
- Mark legacy Bitcoin API as deprecated, and remove corresponding tests
- Mark recipients API as deprecated, and remove recipient card tests
- Correct minimum required Ruby version in gemspec (it's 2.0.0)
- Only parse webhook payload after verification to decrease likelihood of attack
- Add support for standard library logger interface with
Stripe.logger
- Error logs now go to stderr if using
Stripe.log_level
/STRIPE_LOG
Stripe.log_level
/STRIPE_LOG
now supportStipe::LEVEL_ERROR
- Add logging for request retry account and
Stripe-Account
header
- Implement request logging with
Stripe.log_level
andSTRIPE_LOG
- Revert
nil
to empty string coercion from 3.0.2 - Handle
invalid_client
OAuth error code - Improve safety of error handling logic safer for unrecognized OAuth error codes
- Convert
nil
to empty string when serializing parameters (instead of opaquely dropping it) -- NOTE: this change has since been reverted
- Properties set with an API resource will now serialize that resource's ID if possible
- API resources will throw an ArgumentError on save if a property has been with an API resource that cannot be serialized
#pay
on invoice now takes params as well as opts
- Add support for ephemeral keys
- Warn when keys that look like opts are included as parameters
- Add support for account login links
- Support for OAuth operations in
Stripe::OAuth
- Support for checking webhook signatures
- Add model
InvoiceLineItem
- Add
OBJECT_NAME
constants to all API resources
- Make
opts
argument inUtil.convert_to_stripe_object
optional
- Add
Stripe.set_app_info
for use by plugin creators
- Add question mark accessor when assigning boolean value to undefined field
- Declare minimum required Faraday as 0.9
- Add support for payouts and recipient transfers
- Support for detaching sources from customers
- Fix marshalling of
StripeObjects
that have an embedded client
- Fix bad field reference when recovering from a JSON parsing problem
- Fix multipart parameter encoding to repair broken file uploads
- Drop support for Ruby 1.9
- Allow HTTP client that makes Stripe calls to be configured via Faraday
- Drop RestClient
- Switch to OpenAPI 2.0 spec and generated fixtures in test suite
- Switch to Webmock in test suite
- Remove erroneously added list methods for
Source
model
- Disallow sending protected fields along with API resource
.update
- Add retrieve method for 3-D Secure resources
- Improve
StripeObject
's#to_s
to better handle how embedded objects are displayed
- Fix (fairly serious) memory like in
StripeObject
- Add accessors for new fields added in
#update_attributes
- Handle multi-plan subscriptions through new subscription items
- Handle 403 status codes from the API
Identical to 1.56.0 above. I incorrectly cut a patch-level release.
- Add support for Apple Pay domains
- Whitelist errors that should be retried; scope to known socket and HTTP errors
- Relax version constraint on rest-client (and by extension mime-types) for users on Ruby 2+
- Make sure
Subscription
'ssource
is saved with its parent
- Make sure
Account
'sexternal_account
is saved with its parent
- Error when an array of maps is detected that cannot be accurately encoded
- Start using strings for header names instead of symbols for better clarity
- Fix encoding of arrays of maps where maps unequal sets of keys
- Allow sources to be created
- Add top-level
Source
model
- Add
ThreeDSecure
model for 3-D secure payments
- Allow rest-client version 2.0+ to be used with the gem
- Allow retry when a 409 conflict is encountered
- Do not send subresources when updating except when explicitly told to do so (see #433)
- Add
update
class method to all resources that can be updated
- Fix type of resource returned from
Order#return_order
- Allow Relay orders to be returned and add associated types
- Support Alipay account retrieval and deletion
- Add support for the new /v1/subscriptions endpoint (retrieve, list, create, update, and delete)
- Add global
stripe_account
option that adds aStripe-Account
header to all requests
- Fix bug that omitted subresources from serialization
- Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
- Allow
opts
to be passed to an API resource's#save
method
- Add
Account#reject
to support the new API feature
- Fix reference to non-existent
#url
inListObject
- Fix serialization when subhash given to
#save
or#update_attributes
- Add
CountrySpec
model for looking up country payment information
- Add compatibility layer for old API versions on
Charge#refund
- Allow CA cert bundle location to be configured
- Updated bundled CA certs
- Add support for deleting products and SKUs
- Pass through arguments of
Charge#refund
- Re-implement
Charge#refund
helper to use the modern endpoint suggested by docs
- Fix bug where ivar left uninitialized in StripeObject could error on serialization
- Fix bug where a nil customer from API could error Bitcoin model on refresh
- Add configuration to optionally retry network failures
- Use modern API endpoint for producing application fee refunds
- Add BankAccount#verify convenience method
- Fix bug where arrays that were not
additional_owners
were not properly encoded for requests
- Fix bug where
opts
didn't properly propagate to descendantStripeObjects
- Fix bug that prevent lists of hashes from being URI-encoded properly
- Fix bug where filter conditions were not making it past the first instantiated
ListObject
- Add
StripeObject#deleted?
for a reliable way to check whether an object is alive - Deprecate
StripeObject#refresh_from
- New parameter encoding scheme that doesn't use
URI.escape
- Fix bug where ampersands were not being properly encoded
- Add pagination helpers
#auto_paging_each
,#previous_page
, and#next_page
- Fix URI being referenced by file upload resources
- Make StripeObject's #save "upsert"-like; creates an object if new
- Add #update_attributes to StripeObject for safe mass assignment
- Properly mass assign attributes on calls to #save
- Add question mark helpers for boolean fields (e.g. #paid? as well as old #paid)
- Fix a bug that broke the API for StripeObject initialization
- Remove use of deprecated URI.escape
- Correct the URLs used to fetch Bitcoin transactions.
- Use hash rockets for backwards compatibility.
- Add Orders, Products, and SKUs for Relay
- Add support for 429 Rate Limited response
- Added support for refund listing and retrieval without an associated charge
- Added support for deleting managed accounts
- Added support for dispute listing and retrieval
- Bugfix: token objects now are the correct class
- Added request IDs and HTTP headers to errors
- Added support for bank accounts and debit cards in managed accounts (via the
external_accounts
param)
- Remove TLS cert revocation check (all pre-heartbleed certs have expired)
- Bugfix: don't unset keys when they don't exist on StripeObject
- Raise an error when explicitly passing nil as the API key on resource methods
- Fix error when passing an API key to Balance.retrieve (github issue #232)
- Fixed error when updating certain resources (github issue #224)
- Added support for updating nested hashes besides
metadata
(which was already supported) - Fixed bug in balance retrieval
- Updated Card to point to customer sources endpoint when customer property is set
- Added Update & Delete operations to Bitcoin Receivers
- Fixed fetching upcoming invoice/paying invoice methods
- Support for new Transfers /reversals endpoint
- Account retrieval now optionally accepts an account ID
- Better support for passing custom headers, like Stripe-Account, through requests
- 1 major enhancement:
- Added support for making bitcoin charges through BitcoinReceiver source object
- 1 bugfix:
- Fixed API key propagation for ApplicationFee#refund
- 1 bugfix:
- Fixed API key propagation for child resources
- 2 minor enhacements:
- Fixed dependencies for Ruby versions less than 1.9.3
- Added deauthorize method to Account object
- 1 major enhacement:
- File uploads resource was added (for uploading pdf or image documents for disputes)
- 2 minor enhancements:
- Ability to send idempotent requests
- Ability to specify stripe account as a header
- 1 minor enhacement:
- Coupons now support update operations - useful for manipulating metadata
- 1 major enhacement:
- Application Fee refunds now a list instead of array
- 1 major enhancement:
- Add metadata for refunds and disputes
- 1 major enhancement:
- Support for canceling transfers
- 1 major enhancement:
- Support for cards for recipients
- 2 minor enhancements:
- Update included ca bundles
- Implement certificate blacklisting
- 1 minor enhancement:
- Add create_subscription on Customer resources, so you can create subscriptions without needing to retrieve the customer first (github issue #120)
- 1 bugfix:
- Fix marshaling of StripeObjects
-
2 major enhancements
- Support for multiple subscriptions per customer
- Testing ruby 2.1.0
-
2 minor enhancements
- Replace multi_json with json
- Allow #save to take opts (for :expand)
-
1 bugfix
- Fix #try and #respond_to? on StripeObjects
- 1 major enhancement
- Add ApplicationFee resource
- 2 bugfixes:
- Fix gemspec dependencies so the gem doesn't break for Ruby 1.8 users
- Fix api_resource_test to not use returns as a way of testing rescue behavior
- 1 major enhancement
- Add support for metadata on resources
- 1 minor enhancement
- Add support for closing disputes.
- 1 major enhancement
- Add Balance and BalanceTransaction resources
- 1 major enhancement
- Add support for unsetting attributes by setting to nil. This permits unsetting email and description on customers and description on charges. Setting properties to a blank string is now an error.
- Attempting to set an object's id is now an error
- 1 major enhancement
- Add support for new cards API (Stripe API version - 2013-07-05)
- 1 bugfix:
- Fix handling of per-call API keys (github issue #67)
-
3 minor enhancements:
- Use to_sym instead of type checking for minor performance improvement (github issue #59)
- Handle low-memory situations without throwing an exception (github issue #61)
- Add an Customer#upcoming_invoice convenience method (github issue #65)
-
1 bugfix:
- Allow updating resources without first retrieving them (github issue #60)
- 1 minor enhancement:
- Add support for specifying an API key when retrieving an upcoming invoice
- 1 major enhancement:
- Add new Recipient resource
- Allow Transfers to be createable
- 1 minor enhancement
- Add 'id' to the list of permanent attributes
- 1 major enhancement
- Add support for passing options when retrieving Stripe objects e.g., Stripe::Charge.retrieve({id:"foo", expand:["customer"]}) Stripe::Charge("foo") is still supported as well
- 1 major enhancement
- Add support for setting a Stripe API version override.
- 1 bugfix
- Relax the version constraint on multi_json (github issue #44)
-
1 minor enhancement:
- Add support for updating charge disputes
-
1 bugfix
- Fix Account API resource bug
- 1 major enhancement
- Add support for creating invoices
- 1 major enhancement
- Add support for new API lists
- 1 bugfix
- Fix bug introduced in 1.7.3 calling API methods that take no arguments, like Stripe::Invoice#pay (github issue #42)
- 2 bugfixes
- Make sure that both keys and values of GET params are URL-encoded. NOTE: If you were previously URL-encoding values yourself, you may need to adjust your code.
- URL-encode POST params directly, instead of allowing rest-client to do it to work around an unfortunate interaction with the hashery gem (github issue #38)
- 1 major enhancement
- Add support for new pay and update methods for Invoice objects
- 1 major enhancement
- Add new Account API resource
-
3 major enhancements:
- Switch from vendored stripe-json to multi_json for all JSON parsing and rendering. This should not impact programmatic usage of the library, but may cause small rendering differences from, e.g., StripeObject#inspect (github issue #22)
- Add new delete_discount method to Customer objects
- Add new Transfer API resource
-
2 minor enhancements:
- Switch from 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
- 1 bugfix:
- Encode GET query strings ourselves instead of using rest-client to work around a bug
- 1 bugfix:
- Correct argument handling in StripeObject#as_json
- 1 bugfix:
- Fix StripeObject#inspect when ActiveSupport 3.0 is loaded
- A whole bunch of releases between 1.5.0 and 1.6.0, but few changes, mainly the addition of plans, coupons, events, and tokens
- 1.6.0 also contains a new inspect/to_string implementation
- 1 major enhancement:
- Update for new RESTful API
- 1 major enhancement:
- Rename to Stripe
- 1 major enhancement:
- Support for the set_customer_subscription and delete_customer API methods
- 1 major enhancement:
- Support for recurring billing
- 1 major enhancement:
- Initial release