This release will upgrade us to API version 2.16. There are no breaking changes.
- Added
details
to error messages 372 - Added
charge
parameter to subscription termination functions 374 - Fixed errors reported by PHPStorm 375
- Added
account_acquisition
attribute toaccount
377 - Fixed pager so it does not break when there is no data 378
This release will upgrade us to API version 2.15. There are no breaking changes.
- Added
scripts
folder 364 - Provide a correct recurly code when responding with a 404 366
- Add support for more webhooks 368
This release will upgrade us to API version 2.14. There are no breaking changes.
- Update php version info #355
- Support updating an invoice #360
- Fix custom field serialization #361
- Support updating custom fields through Subscription#updateNotes #362
- Update README #359
This release will upgrade us to API version 2.13. There are no breaking changes.
- Add all_transactions link to Invoice #350
- Allow programmer to set gateway code in purchase #351
- External token support #352
- Support for custom fields #353
- Subscription terms #356
This release will upgrade us to API version 2.12. There are no breaking changes.
- API Version 2.12 #348
This release will upgrade us to API version 2.11. There are no breaking changes.
- API Version 2.11 #342
This release will upgrade us to API version 2.10.
- API Version 2.10 #339
- Add missing writeable fields to AddOn #338
- Removes links to singular subscription (thanks to @phpdave) #340
There are several breaking changes to support the new credit memos feature.
When creating invoices or using markFailed()
, we now return an Recurly_InvoiceCollection
object rather than an Recurly_Invoice
. If you wish to upgrade your application without changing functionality, we recommend that you use the charge_invoice
on the Recurly_InvoiceCollection
. Example:
# Change This:
$invoice = Recurly_Invoice::invoicePendingCharges('my_account_code');
# To this
$invoiceCollection = Recurly_Invoice::invoicePendingCharges('my_account_code');
$invoice = $invoiceCollection->charge_invoice;
Calls that now return InvoiceCollection
instead of Invoice
:
Recurly_Purchase::invoice()
Recurly_Purchase::preview()
Recurly_Purchase::authorize()
Recurly_Invoice::invoicePendingCharges()
Recurly_Invoice::previewPendingCharges()
Furthermore, Recurly_Invoice->markFailed()
no longer updates the invoice but rather returns a new Recurly_InvoiceCollection
object:
# Change This:
$invoice->markFailed();
# To this
$invoiceCollection = $invoice->markFailed();
$failedInvoice = $invoiceCollection->charge_invoice;
Recurly_Invoice->original_invoice
was removed in favor of Recurly_Invoice->original_invoices
. If you want to maintain functionality, change your code grab the first invoice from that endpoint:
# Change this
$originalInvoice = $invoice->original_invoice->get();
# To this
$originalInvoice = $invoice->original_invoices->get()->current(); # current is first item
We have renamed two of the invoice subtotal fields to more clearly reflect their values:
- Renamed
subtotal_in_cents
tosubtotal_before_discount_in_cents
- Renamed
subtotal_after_discount_in_cents
tosubtotal_in_cents
If you were using Recurly_Invoice->refund
or Recurly_Invoice->refundAmount
and explicitly setting the second refund_apply_order
parameter, then you may need to change value to fit the new refund_method
format. The values for this have changed from (credit
, transaction
) to (credit_first
, transaction_first
)
If you don't explicitly set the refund_apply_order
like in these two calls, no change is needed:
$invoice->refund($line_items);
$invoice->refundAmount(1000);
If you do set the second param, you'll need to change:
credit
tocredit_first
transaction
totransaction_first
Examples:
# Change `credit`:
$invoice->refund($line_items, 'credit');
$invoice->refundAmount(1000, 'credit');
# To `credit_first`
$invoice->refund($line_items, 'credit_first');
$invoice->refundAmount(1000, 'credit_first');
# Change `transaction`
$invoice->refund($line_items, 'transaction');
$invoice->refundAmount(1000, 'transaction');
# To `transaction_first`
$invoice->refund($line_items, 'transaction_first');
$invoice->refundAmount(1000, 'transaction_first');
If you are checking Recurly_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')
This also affects the Recurly_InvoiceList::getCollected()
and Recurly_InvoiceList::getOpen()
functions. Example:
# Change this
Recurly_InvoiceList::getCollected()
# To this
Recurly_InvoiceList::getPaid()
# Change this
Recurly_InvoiceList::getOpen()
# To this
Recurly_InvoiceList::getPending()
This release will upgrade us to API version 2.8.
There is one 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.
- Fixes a bug creating subscriptions for existing accounts (thanks to @g30rg) #326
This bumps us to API v2.7 but does not contain any breaking changes.
- Bump API v2.7 (purchase endpoint updates) #319
- Enhancement: Enable IntelliSense (IDE friendly) for class properties (Part 2) Invoice and Subscription (thanks to @phpdave) #279
No changes from 2.8.0.rc1
- Remove 5.3 Support and upgrade Travis to support HHVM #316
- Purchases endpoint #315
- Remove X-Records header #314
- Add trial requires billing info field and no billing info reason field #312
There are a few breaking changes this release.
- PHP 5.3 is no longer officially supported and we no longer run tests against it.
- To speed up your listing requests we're no longer automatically computing the record counts for each request's
X-Records
header. For our larger sites this could halve the response time. If you still need a count it will be computed with a separate request. From now on, when you callRecurly_Pager::count()
, it will send a HEAD request to the server. Ensure you aren't calling that method in places where you expect the value to be cached for you. For more information on how this may affect you, see PR #314 - For
POST /v2/subscriptions
Sendingnull
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
.
- Require export files #296
- Writeable and updatable coupon description #297
- Adds a getType method to all Resources #299
- The Pager should implement the Countable interface (thanks to naderman) #282
- Parse incorrectly shaped validation errors #298
- Adds external payments to invoices #309
- GiftCard: deliver_at goes on the Delivery object #307
- Changes for API v2.5 #310
- Added property documentation to several classes (thanks to phpdave) #278
- Added company attribute to billing info #280
- Fixed add-on creation bug #286
- Create shipping addresses on existing accounts and allow updates #289
- Adding ability to get Recurly error code from Recurly_Error Exception #291
- Upgraded to API V2.4: https://dev.recurly.com/v2.4/docs
- Fix for client not being passed from
Recurly_Pager
to its items (thanks to cyruscollier) #265 - Adding missing require for
account_balance
#273 - Allow credit adjustments (
Recurly_Adjustment
) to specify anorigin
ofexternal_gift_card
#263 - Added
Recurly_AccountAcquisition
#259 - Added support for automated exports #260
- Added support for shipping addresses #269
- Added filters to
Recurly_Stub
allowing$account->invoices->get(array('state' => 'past_due'))
(thanks to developer-devPHP) #270
- Upgraded to API V2.3: https://dev.recurly.com/v2.3/docs
- Added support for
original_transaction
toRecurly_Transaction
#238 - Added
Recurly_AccountBalance
#239 - Print warnings when using a deprecated version of the API. #250:
- Added support new pagination options #249:
sort
acceptscreated_at
orupdated_at
, defaults tocreated_at
.order
acceptsdesc
orasc
, defaults todesc
.begin_time
andend_time
accepts an ISO 8601 date or date and time.
- Changed
Recurly_AddonList::get()
andRecurly_NoteList::get()
to add$params
as the second parameter so sort, order and date filtering can be passed in #249 - Added support for
revenue_schedule_type
toRecurly_Addon
,Recurly_Adjustment
,Recurly_Plan
,Recurly_Subscription
andRecurly_SubscriptionAddOn
classes #257
- Added support for setting
free_trial_amount
andfree_trial_unit
toRecurly_Coupon
#224 - Fix PHP 7 notice (thanks to davedevelopment) #235
- Fix for fetching
Recurly_NoteList
#236 - Fix for updating subscriptions with add-ons #242
- Fix for paginating
Recurly_CouponRedemptionList
andRecurly_UniqueCouponCodeList
#243 - Use standard PHPUnit configuration file name (thanks to davedevelopment) #234
- Removed old transparent post path constants #237
- Provide default implementation for
getRequiredAttributes()
#241
- Added support for parsing
fraud
attribute on theTransaction
class #228 - Added support for setting
start_date
andend_date
when creating anAdjustment
(thanks to imsagar) #229 - Added support for Usage Based Billing #227
- Added support for
cc_emails
attribute on theAccount
class #202 - Fix bug with incorrect
delete_uri
on theRedemption
class #201 - Added
currency
attribute toBillingInfo
#205
- Removed
nestedAttributes
#191 - Added support for coupon
update
andrestore
actions #186 - Added support bulk coupons and generation #188
- Added
setup_fee_accounting_code
toPlan
#179 - Added
applies_to_non_plan_charges
toCoupon
#181 - Added
redemption_resource
toCoupon
#181 - Added
X-Api-Version
request header at 2.1 #181 - Added
uuid
toAccount
#181 - Added
redemptions
toAccount
#181 - Added
max_redemptions_per_account
toCoupon
#181 - Added
redemptions
toSubscription
#181 - Added
coupon_codes
toSubscription
#181 - Added
CACertPath
toRecurly_Client
#176
- Added
duration
,temporal_unit
, &temporal_amount
toCoupon
#171
- Added
gateway_error_code
toRecurly_Transaction
#163 - Add support for
refund_apply_order
when performing an open amount or line item refund #161] - Add
tax_exempt
,tax_code
toRecurly_Transaction
#166 - Add
Recurly_CouponRedemptionList
(thanks to Flambe) #164
- Fixed bug where fetching an invoice PDF did not use the invoice number prefix #155
- Added bank account attributes to
Recurly_BillingInfo
, these include:name_on_account
account_type
(checking
orsavings
)last_four
routing_number
- Added
ip_address
attribute toRecurly_Transaction
#157 - Added
bank_account_authorized_at
toRecurly_Subscription
#156 - Add invoice node to
Recurly_PushNotification
to read data on *_invoice_notification (thanks to rikless) #159
- Fixes encoding of values with ampersands #150
- Added adjustment refund support:
refund()
andtoRefundAttributes()
onRecurly_Adjustment
#133 - Added invoice refund support:
refund()
andrefundAmount()
onRecurly_Invoice
#133
- Force cURL to validate SSL certificates #122
- Reverted #64, removing
balance_in_cents_invoiced
andbalance_in_cents_uninvoiced
fromRecurly_Account
. They were never added to the API. - Added
tax_code
toRecurly_Plan
,Recurly_Addon
andRecurly_Adjustment
#120 - Added invoice previews:
Recurly_Invoice::previewPendingCharges($accountCode)
#112 - Added
terms_and_conditions
andcustomer_notes
toRecurly_Invoice
#115 - Added
vat_location_valid
field toRecurly_Account
#127 - Added
updateNotes()
andvat_reverse_charge
toRecurly_Subscription
#128 - Added
vat_reverse_charge_notes
toRecurly_Invoice
#128 - Added
invoice_number_prefix
andinvoiceNumberWithPrefix()
toRecurly_Invoice
. This is to be used with the Country Invoice Sequencing feature. #130 - Added
collection_method
,net_terms
andpo_number
toRecurly_Invoice
#131 by dmatora
- Added remaining billing cycles to subscriptions:
$subscription->remaining_billing_cycles
#91 - Added subscription change preview for existing subscriptions:
$subscription->preview()
#94 - Remove readme reference to RecurlyJS v2 private key #97
- Adding bulk parameter to subscription creation #98
- Added account entity use code:
$account->entity_use_code
#100 - Added PHP 5.6 and HHVM to
travis.yml
(thanks to Nyholm) #101 - Update branch alias to 2.3.x-dev (thanks to bangpound) #102
- Bump phpunit to 4.2 #103
- Adds PayPal and Amazon support to
Recurly_BillingInfo
#104 - Adding bulk parameter to
$subscription->postpone()
#105
- Added tax details to adjustments:
$adjustment->tax_details
#90 - Added subscription previews:
$subscription->preview()
#90
- Added support for
Recurly_Account
fieldbalance_in_cents_invoiced
#64 - Added support for
Recurly_Account
fieldbalance_in_cents_uninvoiced
#64 - Added support for
Recurly_BillingInfo
fieldtoken_id
#83 - Fixed bug in parsing large XML responses #88
- Explictly call
Recurly_Resource
's constructor #67 - More tests for coupons #77
- Document where new releases are announced in the README #78
- Fixed error where where
Recurly_Addon
was not found #79 by baxevanis - Fixed bug setting account address #80 by deviantintegral
- Fixed error when trying to redeem expired or maxed out coupons (thanks to jeffchannell)
- Improved documentation of
Recurly_PushNotification
(thanks to richardkmiller) - Updated XML in test fixtures
- Better tests for
Recurly_Adjustment
- Use PHPUnit for testing
- Remove old
taxable
parameter fromRecurly_Adjustment
- Send
null
attributes becauseRecurly_PlanTest
needstotal_billing_cycles
to be set tonull
for unlimited renewals.
- Fixed errors thrown due to empty XML strings #62 beaudesigns
- Fixed invalid XML errors when saving subscriptions with add-ons.
- Added support for manual payments
- Added support for account level address
- Moved VAT number to Account
- Added support for client subdomains, the default of 'api' should be fine for most users.
- Added support for fetching account notes.
- Fixed fatal error in
Recurly_Invoice::getInvoicePdf()
. - Fixed fatal error in
Recurly_Account::close()
. - Added
reopen()
andreopenAccount
toRecurly_Account
.
- Added Composer support (SimpleTest is no longer bundled, use
composer install --dev
to install it) - Added
Recurly_AccountList::getClosed()
- Added
update()
andaccounting_code
toRecurly_Addon
andRecurly_Transaction
- Improved test coverage
- Lists now implement Countable and IteratorAggregate
- Fixed fatal errors in delete methods
- Fixed problems marking invoices successful/failed
- Support marking invoices as successful/failed
- Add subscriptions postpone functionality
- Support for subscriptions 'first_renewal_date' attribute.
- Fix problem where require parameters are sometimes not sent in requests (such as account_code).
- Fix un-pageable array results (no href is present), such as invoice/transactions.
- Fix transaction refunding, which was sending to a deprecated route.
- Fix Recurly.js token retrieval
- Improved Recurly.js support for Recurly.js v2.1.x. Supports optional parameters, simplified signatures, etc.
NOTE: Recurly.js signature and result retrieval is not backwards compatible with 2.0.x version of the client.
- Better parsing of transaction errors on one-time transaction requests.
- Parse an array of plan_codes as strings in the coupon response.
- Update subscription create URL to the endpoint that auto-creates the account if it does not exist.
- Accept transaction description.
- Fix creating subscription when add-ons is an empty array. Added tests.
- Always send list of addons when performing a subscription update.
- Fixed URL for
Recurly_CouponRedemption::get()
. - Added
Recurly_TransactionList::getForAccount()
. - Add coupon redemption via
$coupon->redeemCoupon('account_code')
. - Properly encode
plan_codes
when limiting coupons to specific plans.
- Support for creating a subscription with add-ons (thanks to @qqqq).
- Attributes with a date are now DateTime objects instead of epoch timestamps.
- Use
rawurlencode()
instead ofurlencode()
to create resource URLs. Required for URLs that contain spaces - Raise
Recurly_ValidationError
for 422 instead ofRecurly_RequestError
. Bug introduced in earlier commit today
- Fix
Recurly_InvoiceList::getForAccount()
,SubscriptionList::getForAccount()
- Interpret 4xx as request errors and 5xx as server errors for future error codes
- Include method to retrieve invoice as PDF
Merged fixes from beaudesigns:
- Replaced static class to DomDocument::loadXML()
- "pending_subscription" now loads class
Recurly_Subscription
- Fixed references to $this that should have been local scopes
- Full rewrite for API v2