Stripe is obviously good for charging credit cards. Subscriptions & Plans work great for SAAS. A feature that is not so obvious but I’m finding really useful is Stripe’s ability to add metadata to a client entry. Metadata can be any name/value pair and looks like this in the Stripe web interface:
So what can you use it for?
I have a software program I sell that comes with a free 30 day demo period. I put the expire date of the demo period in the Stripe metadata. I could hide that in the data of the program in one way or another, but what happens when a potential customer calls and says they’d like a little more time to test out the software? With the data in Stripe, I can easily go into the Stripe web interface, change the date, and they’re good to go.
I also put the version number of my software in Stripe metadata. When a tech support email comes in, I can easily check for myself what version of my software they are using.
Since it is demo software, I also store the last time the software was used. This let’s me see demos that are no longer being used.
On a simpler level, I can store name/phone number/email information in the metadata. Again, when that tech support email comes in, I can figure out what company it is and can call them back if need be.
Updating Stripe metadata is straight-forward using the StripeX library in VFPX:
* Create/Update the Stripe customer record oStripe.AddMetaData("Last Update", TTOC(DATETIME())) oStripe.AddMetaData("Expire", DTOC(lExpire)) oStripe.AddMetaData("Version", oVar.zAppDate + ": " + oVar.zAppVersion) oStripe.AddMetaData("Active Count", TRANSFORM(lActiveCnt)) oStripe.AddMetaData("School", lName) lCustID = oStripe.Customer(zsysvar("CustID"), lName)