This brings us up to API version 2.14. There are no breaking changes.
- Support TransactionAuthorizedNotification webhook PR
- Support updating an invoice from client PR
- Support custom fields on Subscription#update_notes PR
- Adjust inline documentation for clarity, grammar, and syntax PR
- Correctly document the response type in Purchases PR
- Add gateway_token and gateway_code attributes to BillingInfo class PR
- Remove the old recurly binary PR
- Don't set the logger in railtie PR
- Make currencies method public PR
- Allow programmer to set gateway code in purchases PR
- Add all_transactions link to Invoice PR
- Auth and Capture for Purchases PR
- Custom Fields PR
- Remove rails code and railtie PR
- Subscription Terms PR
This brings us up to API version 2.13. The only breaking change is the removal of the railtie.
The railtie was being included automatically on detecting rails and was automatically setting the accept_language
for each request.
If this is something you wish to continue doing, you'll need to set this yourself.
- Invoice refunds do not return InvoiceCollection PR
- Support gift card webhook PR
- Fixes to Resource#find_each PR
If you are upgrading from 2.13.X or 2.14.X, a design bug was fixed. Invoice#refund
and Invoice#refund_amount
once again return an Invoice
and not
an InvoiceCollection
.
Resource#find_each
previously only accepted per_page
but now accepts an options
Hash for pagination params. If you want to preserve functionality:
# Change This
RecurlyLegacyGem::Invoice.find_each(50) do |invoice|
puts invoice
end
# To This
RecurlyLegacyGem::Invoice.find_each(per_page: 50) do |invoice|
puts invoice
end
Note: We recommend upgrading to 2.15.X for a bug fix around Invoice refunds.
- Updates to credit memos feature PR
mark_failed
no longer reloads the invoice with the response returning true or false, it returns either an InvoiceCollection
if failable and request is successful, it returns false
if invoice cannot be marked failed. To keep functionality, take the charge_invoice
of the returned collection:
invoice = RecurlyLegacyGem::Invoice.find('1001')
failed_collection = invoice.mark_failed
if failed_collection
invoice = failed_collection.charge_invoice
end
Subscription previews and preview changes now return InvoiceCollection
s rather than Invoice
. Utilize the charge_invoice
to keep functionality the same:
subscription.preview
# Change
invoice = subscription.invoice
# To
invoice = subscription.invoice_collection.charge_invoice
Note: We recommend upgrading to 2.15.X for a bug fix around Invoice refunds.
This version bumps us to API version 2.10. There are many breaking changes due to the Credit Memos PR
When creating or refunding invoices, we now return an InvoiceCollection
object rather than an Invoice
. If you wish to upgrade your application without changing functionality, we recommend that you use the charge_invoice
on the InvoiceCollection
. Example:
# Change this
invoice = my_account.invoice! # Returns an Invoice
# To this
collection = my_account.invoice! # Returns an InvoiceCollection
invoice = collection.charge_invoice # Returns an Invoice
These methods, which before returned Invoice
now return InvoiceCollection
:
Purchase.preview!
Purchase.invoice!
Purchase.authorize!
Account#invoice!
Account#build_invoice
If you want to preserve functionality, change any use of Invoice#subtotal_after_discount_in_cents
to Invoice#subtotal_in_cents
. If you were previously using Invoice#subtotal_in_cents
, this has been changed to Invoice#subtotal_before_discount_in_cents
.
If you were using refund_apply_order
on any refunds, then you need to change this to use refund_method
instead. The keys from this have changed from (credit
, transaction
) to (credit_first
, transaction_first
)
# If you use `credit` with refund_amount or refund
invoice.refund_amount(1000, 'credit')
invoice.refund(line_items, 'credit')
# Change to use `credit_first`
invoice.refund(line_items, 'credit_first')
# If you use `transaction` with refund_amount or refund
invoice.refund_amount(1000, 'transaction')
invoice.refund(line_items, 'transaction')
# Change to use `transaction_first`
invoice.refund(line_items, 'transaction_first')
If you are checking Invoice#state
anywhere, you will want to check that you have the new correct values. collected
has changed to paid
and open
has changed to pending
. Example:
# Change this
if invoice.state == 'collected'
# To this
if invoice.state == 'paid'
# Change this
if invoice.state == 'open'
# To this
if invoice.state == 'pending'
- Added purchase authorize endpoint and other API version 2.9 changes. PR
This version bumps us to API version 2.9. There are a few breaking changes.
- The 'subscription' link on an instance of
Adjustment
is now only created if adjustment is originating from a subscription plan charge, setup fee, add on, trial or proration credit. It is no longer created for other adjustments. - Instances of
Transaction
andInvoice
no longer have asubscription
link and you must now use thesubscriptions
link.
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Added
subscriptions
link toInvoice
andTransaction
PR
This release will upgrade us to API version 2.8.
There are two breaking changes in this API version you must consider.
All country
fields must now contain valid 2 letter ISO 3166 country codes. If your country code fails validation, you will receive a validation error. This affects any endpoint where an address is collected.
The purchases endpoint can create and invoice multiple adjustments at once but our invoices can only contain items in one currency. To make this explicit the currency can no longer be provided on an adjustment, it must be set once for the entire purchase:
purchase = RecurlyLegacyGem::Purchase.new(
# The purchase object is the only place you can set the currency:
currency: 'USD',
account: {
account_code: 'someone'
}
adjustments: [
{
# Remove this currency
# You can no longer set the currency on adjustment level
currency: 'USD',
unit_amount_in_cents: 1000
}
]
)
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Fix Subscription constructor API breakage PR
NOTE: This release contains an accidental breaking change on Subscription.new
.
See #338 for more details.
Upgrade to 2.10.2 for the fix.
This release will upgrade us to API version 2.7.
- Added
updated_account_notification
notification event PR - Removed Plan#trial_requires_billing_info coercion PR
- Fixed "address" being serialized as "addres" bug PR
- Bump to API v2.7 (Purchase endpoint updates) PR
- resource_class option should be class_name and other mislabeled options PR
- Upgrade rake to fix warnings PR
- Purchases endpoint PR
- Removal of X-Records header PR
This release will upgrade us to API version 2.6. There are two breaking changes:
- Since the X-Records header was removed in the pagination endpoint, you can no longer call
count
on aPager
and expect it to return a cached response. From now on, when you callPager#count
, it will send aHEAD
request to the server. So make sure you aren't calling that method in places where you expect the value to be cached for you. For more info see PR #324. - For
POST /v2/subscriptions
Sendingnil
fortotal_billing_cycles
attribute will now override plantotal_billing_cycles
setting and will make subscription renew forever. Omitting the attribute will cause the setting to default to the value of plantotal_billing_cycles
.
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Remove Nokogiri as a dependency of the recurly gem. If you'd like to continue using it (for that nice speed boost), make sure to add
gem "nokogiri"
to your Gemfile. PR - Add sort and filter params to Pager rubydocs PR
- Ban nokogiri on dead rubies PR
- Fix Address serialization bug (serialize every attribute on update) PR
- Upgrade webmock so specs can run on ruby 2.4 PR
Ruby 1.9 and 2.0 are now deprecated. You may no longer use nokogiri on these rubies. Please see PR #317 for more information. If you wish to use nokogiri and it's not already required (by rails for instance), you will need to explicitly add it as a dependency and require it.
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Finishes API v2.5 updates PR
- Adding product_code to Transactions and Adjustments PR
- Adding all_line_items PR
- Implement fields for Vertex integration PR
- Adds geo_code to billing_info, account address, and shipping address PR
- Guard against passing
Resource.find
empty strings #307 PR - Add yard docs link #305 PR
If you are using as_json
on a Resource (previously unsupported) we are now returning the attributes as json rather than the resource as json. This means your returned Hash will not have an attributes
key but will rather BE the attributes
value. See #295
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Fix coupon redemption bug on bulk coupons #284 PR
- Fix coupon redemption errors PR
- Remove "base" from pretty printed error messages PR
- Fix rails deprecation warning PR
- Add
updated_at
toMeasuredUnit
PR - Support gift card
canceled_at
timestamp PR - Fix AddOns quantity accumulator bug from #226 PR
- Fix Ruby 1.9.3 and jruby testing dependencies PR
- Add new dunning event webhook PR
- Add
timeframe
attribute toSubscription
PR
- Gift cards support was not merged properly in #257. This adds it correctly.
- Support Shipping Addresses PR
Bumps to API version 2.4
- API Version 2.3 PR
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Fix method missing
changed?
inAccount
PR
- Add support for free trial coupons PR
- Add support for
roku_billing_agreement_id
PR - Fix
Account#address_changed?
dirty check PR - Add support for
<fraud>
if it exists onTransaction
PR - Fix updating
unit_amount_in_cents
onSubscription
PR - Fix stray
puts
in specs PR
This version has a bug around creating accounts. We recommend using 2.6.1 or later https://github.com/recurly/recurly-client-ruby/releases/tag/v2.6.1
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Remove Gemfile.lock, add more rubies to testing matrix PR
- Remove autoload and reorder requires PR
- Usage Based Billing PR
- Add
currency
attribute toBillingInfo
object so client can pass currency on create/update PR
- Fix redemption destroy path for accounts with multiple redemptions PR
This release has API breaking changes around coupon redemptions. See PR to see if you are affected.
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Fixed array change tracking issue around redemptions PR
- Add
cc_emails
attribute toAccount
PR - Add webhooks parsers PR
- Fixed
setup_fee_accounting_code
spec PR
- Ignore associations defined in xml but not in the Resource subclasses PR
- Added support for editing and restoring coupons PR
- Added support for bulk coupons and coupon code generation PR
- Added
applies_to_non_plan_charges
attribute toCoupon
- Adding
gateway_error_code
toTransaction
- Adding
redemption_resource
toCoupon
- Added
max_redemptions_per_account
attribute toCoupon
- Added
redemptions
attribute toSubscription
- Added
setup_fee_accounting_code
attribute toPlan
- Add support for
Resource.find_each
to be chained with other iterator methods without passing a block
- Added ability to enter offline payment PR
- Add
tax_exempt
,tax_code
, andaccounting_code
support for one time transactions PR - Added
duration
,temporal_unit
, andtemporal_amount
to 'Coupon' PR
- Added config to Recurly to allow for per thread configuration of Recurly client. PR
- Add
refund_apply_order
toInvoice
when creating a refund PR - Fix association loading when fetching a resource via RJSv2 PR
- Fix paged resource loading when the uuid needs to be escaped, fixes 174, PR
- Add
tax_type
,tax_rate
,tax_region
toAdjustment
PR - Add
net_terms
andcollection_method
toInvoice
PR - Added
bank_account
attributes toBillingInfo
:name_on_account
account_type
(checking
orsavings
)last_four
routing_number
- PR
- Add
vat_location_valid
toAccount
PR - Add
Invoice#invoice_number_prefix
andInvoice#invoice_number_with_prefix
to make use of the new Country Invoice Sequencing feature PR - Fixes issue with
Subscription#pending_subscription
currency value PR
- Add
Invoice#original_invoice
for refund invoices PR
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending.
- Add
Invoice#tax_region
andSubscription#tax_region
PR - Add
Invoice#address
andSubscription#address
when previewing PR - Add
Subscription#update_notes
to update a subscription's notes PR - Add
AddOn#accounting_code
PR
- Add 'public_key' property to Recurly.js 1ad6aa0
- Adds support for reading and writing custom invoice notes PR
- Add
Plan#tax_code
,AddOn#tax_code
andAdjustment#tax_code
PR
- Fixes issue with broken association lookups ca0b015
- Adding invoice refunds by line item:
invoice.refund(line_items)
9acc7a5
- Adding invoice preview:
account.build_invoice
0bc0d01
- Adding the bulk parameter to the
Subscription#postpone
method 8bf72bc
- Added Amazon Billing Agreement support 024269
- Added account
entity_use_code
when the site is integrated with Avalara 633df6 - Added bulk parameter 8cb157
- Added subscription change preview:
subscription.preview
57a69d3 - Added subscription estimated cost for new and change previews:
subscription.cost_in_cents
57a69d3 - Added subscription remaining billing cycles:
subscription.remaining_billing_cycles
PR
- Added subscription preview:
Recurly::Subscription.preview
0d55115 - Added tax details to adjustments:
adjustment.tax_details
c672258 - Removed
taxable
support on adjustments b542b8a - Added
tax_exempt
to accounts, adjustments and plans b542b8a - Added
tax_rate
,tax_type
to invoices and subscriptions 6a43f37 - Added
tax_in_cents
to subscriptions 6a43f37
- Fix
Resource#reload
method.
- Fix SSRF vulnerability in
Resource#find
. CVE is pending. - Backported fix for URL encoding #157
- Added
token_id
support toBillingInfo
#137
- Added ability to determine a transaction's payment method:
Transaction#payment_method
(PR) - Added ability to determine the date an invoice was closed:
Invoice#closed_at
(PR)
- The gem now explicitly requires Ruby 1.9.3 or newer (PR)
- Added ability to get the active invoice for a subscription:
Subscription#invoice
(PR) - Added ability to get the subscription for an adjustment:
Adjustment#subscription
(PR) - Added ability to get the subscription for a invoice:
Invoice#subscription
(PR)