I'm developing a SaaS solution for managing e-commerce orders, particularly focusing on order fulfillment and COD management for platforms like Shopify and WooCommerce. I'm in a tough spot regarding my billing model, and I could really use some practical input.
My platform syncs incoming orders through webhooks, manages the fulfillment process, and collaborates with local delivery services, operating on a credit-based pricing system. The issue I'm grappling with involves whether I should charge customers for every incoming order via webhook or only for the actions they take once the orders are synced.
Currently, I charge one credit per incoming order. This is straightforward since it's simply "1 order = 1 credit," but there are significant concerns:
1. During busy times (like flash sales), customers could miss out on orders if they exceed their credit limit.
2. Shopify retries webhooks multiple times, but if a user's credits are depleted, those retries will also fail.
3. Receiving orders at odd hours, when a customer may have no credits, could lead to missing orders.
4. Customers have no control over when webhooks are triggered.
I have a few specific questions: 1) Are there successful apps that charge for incoming webhook orders? 2) How do services like ShipStation or AfterShip manage order syncs? 3) How have others handled the insufficient credits scenario? 4) Is it advisable to deduct credits for webhooks despite these challenges?
I would greatly appreciate any insights or experiences related to this kind of webhook-based SaaS billing!
4 Answers
Is it really that costly to store orders in your database? Maybe instead of a strict direct credit system, keep a record of pending orders and let clients know how many are waiting when credits run low. Also, considering a modest flat fee for extra credits could deter misuse and still keep operational costs manageable.
To clarify your model a bit, it sounds like your service pulls in orders and manages couriers. Instead of charging per incoming order, how about basing your credit system on actions taken? For instance, you could have a flat rate for all orders imported and charge credits only when they're sent to couriers. This way, you avoid the risk of failing webhook orders just because the credits ran low. It could also give you some leeway on handling overages.
I agree! By charging when orders are actually sent to couriers, you can ensure that your clients are still able to import orders without worrying about missing out because they didn't anticipate a peak.
Have you considered a monthly invoicing system based on the total number of orders processed? A simple tiered pricing model could work where high-volume customers get beneficial rates. Such a model also leaves room for flexibility – maybe users can choose to allow overage instead of blocking orders when they hit their limits.
This could really help prevent any critical missed orders. If you allow overage while notifying the user, it keeps the flow going and maintains customer satisfaction.
Totally! Just make sure customers are aware of any additional charges upfront. It's all about finding that balance between flexibility and predictability for your users.
One thought I'd share is based on what I'd expect as a customer. If I'm at a barbecue and get a call about my business being down due to running out of credits, I'd be really frustrated. It's such an emotional reaction to something that feels avoidable! So, definitely consider how this might impact your customer retention.

That makes sense! Implementing a small overage percentage for the orders that can get queued even when credits are tight could provide a safety net. It’s definitely better than losing crucial orders due to a strict credit model.