Auto-Updating Credit Cards
tl;dr: When your credit card number or expiration date changes, in many cases, we can update them for your automatically!
Credit cards are great. They're quick and easy for the customer and pretty darn nice for the seller (us!) as well. That said, getting issued a new card still feels like a bit of a hassle.
It's not a big deal for future transactions, but what about all those places with your card on file, tied to automatic payments? Having to go through your charge history to find them all, or even just waiting for a charge attempt to bounce, feels like an annoying waste of time and energy.
Thankfully, there's a handy solution for this problem. With many of these types of changes, the card issuers will notify the payment processor about the update.
For Skylight, we use Stripe, and they pass along this information as a convenient webhook event. As of April 1, we have full support for this webhook in Skylight.
There are a few interesting things to note here. First of all, we never store full credit card numbers in our own database. We let Stripe do that for us, as they're the experts on security. We just get the last four digits and expiration date, along with a token we can use to make charges via Stripe.
Since Stripe was already fielding card updates sent to them, in the event that your card number changed and the expiration date stayed the same, we'd have continued to bill you correctly. That sounds strange, but again, we only have the card's Stripe ID—so it doesn't affect us if things change behind the scenes so long as Stripe does the right thing.
There's an important caveat though. While the underlying information would have been updated in Stripe's database, it would not have been reflected in our UI. The places where we show the last four digits of your card number would continue to point to the outdated value, a less than desirable state.
The expiration date is something we actively use though. Prior to adding webhook support, Stripe could have updated the expiration date without Skylight knowing. This is bad on two fronts.
First, we send out email notifications for expiring cards. If the card in Stripe is still valid, we don't want to bother you with extra noise. Worse than this, we check the expiration date before trying to bill and we may even mark an account as delinquent due to an expired card. It's not good for anyone if we stop your data flowing when there's already an updated card in Stripe!
Now, Skylight will always be up to date with your latest credit card data and your account will stay up and running smoothly. (Assuming, of course, that your credit card issuer notifies Stripe!)
This is just another one of all the little things that we're doing at Skylight to make your experience better. Suggestions welcome; ping us via the in-app messenger with more ideas for #allthelittlethings we can enhance!