Usage based pricing (alpha)

Loops supports customers that are billing based on usage. With usage-based pricing models, you charge your customers based on how much of your service they use during the billing cycle. You must also record and report usage to Stripe via API not to Loop.

Stripe has several types of usage-based pricing and Loop supports each type in various capacities. If you would like to use this feature, please reach out directly to Loop to talk about the best way to implement.

Loop also supports usage based pricing models with billing thresholds as well. Please refer here for directions.

This functionality is in alpha, thus there are a few important considerations to note.

1. Cart display

  • For per unit and per package, the cart will show the per unit amount

  • For per tier, the cart will only show "price varies".

You can add a price description within Loop to add context to cart. This can be done by clicking "manage" on the product on the Subscriptions page.

  • The "due date" will incorrectly show "due today" as all metered billing is billed in arrears. Thus, if you want to avoid any confusion, you can simply hide the cart.

2. Authorization suggestion

Loop will suggest an authorization as defined below. You may want to pass into the URL a different suggested default authorization.

  • For per unit and per package, the suggested approval will be for 12*per unit price or 12*the per package price.

  • For per tier, by default Loop suggests $500.


  1. Create a product in Stripe (or edit an existing one) and select "Advanced pricing options" and then choose the "usage" pricing modal.

The base product is brought into Loop as a “subscription” and we generate a checkout link that you can send directly to a customer or can embed on your site.

We suggest you edit the pricing metadata for this subscription to include a line that says “overage charges apply” (with whatever details you want).

  1. Customer provides authorization via the checkout link by connecting their wallet, choosing a token to pay in, and signing a transaction. No payment is taken at this time.

  2. After the customer provides authorization, Loop will automatically create that customer in Stripe, or add a subscription to an existing customer if there is already a customer record in Stripe with the email that the end user provided during checkout.

  3. If you combined this product with a product that takes payment upfront, Stripe will generate the first bill for the subscription, Loop will ingest the invoice, charge the customer on-chain, and mark the invoice as paid. This all happens automatically. If you don't take payment upfront, Stripe automatically generates a $0.00 invoice, which is programmatically marked as paid.

  4. Then, just like for fiat, when usage records are created due to the end customer's usage, Stripe will add the amount to the upcoming invoice.

    • Like for the first payment, Loop takes in the invoice, charges the customer on-chain when the invoice is due, and marks the invoice in Stripe as paid after the payment has processed.

    • If you use an external system to report usage to Stripe, this process will work as-is; any method of usage reporting to Stripe is supported.

    • There’s nothing you need to do here - it all syncs.

Last updated