Gumroad Ping - separate endpoints per product?
If any of you uses Gumroad Licenses, or just Ping API itself - how to you handle "webhook" endpoints? Looks like Ping endpoint can only be configured for the whole account. This makes it impossible to use it like Stripe webhooks - so that for each product I could individually handle its purchases.
Unless I'm wrong, I see three possible solutions here:
- Don't use Gumroad, other than during the launch. I.e. sell "lifetime subscriptions" via Gumroad on the very early stage of each product to check the product-market fit, then disable Gumroad and use Stripe with proper subscriptions. Of course, don't launch more than one product at a time.
- Build a micro service that would accept all Gumroad Pings and distribute them to all my products.
- Register one account per product on Gumroad, which makes life harder as a seller, but makes life easier as a developer.
Am I the only one who finds this a badly designed API? What would you choose? Am I missing something?
It sends the product_id
as part of the request that is sent to the ping endpoint so you know which product was purchased.
I think the second option is the only viable one; if you abstract out your code it means you can handle each product differently by sending it to different functions.
I don't think it's badly designed, just stripped back to keep it as simple as possible (at the cost of flexibility).
@nblackburn Thanks for the reply! I probably misphrased it, by "product" I mean not one pricing option or product variant, but rather completely unrelated products. Say, I'm a single human being, a humble maker. I got my profile on Gumroad and build 2 SaaSes, that I want to license via Gumroad. Those two SaaSes are unrelated, hosted separately and I would prefer to keep them separate as a developer. However, option 2 requires me to put a weird "API gateway" in front of two unrelated services, that might be even hosted in different data centers/clouds at some point.
Please sign in to leave a comment.