Production Readiness Review
Before deploying Orb for your production billing requirements, please ensure you have thoroughly considered the following points as you transition to the production environment:
Event Ingestion
- Ensure you always report events within the grace period, with a meaningful/semantic idempotency key for de-duplication.
- Ensure that you've attempted to backfill events (with and without replacement) in test mode. This is required to build your workflow in production.
- Use the billable metric debugging tab to ensure that your metric queries are behaving per your expectations. Remember that Orb will automatically scope each metric to its customer and billing period.
- Review your metric breakdowns using the price evaluate endpoint, which allows you to
GROUP
andFILTER
by arbitrary SQL dimensions.
Plan setup
- Ensure that usage-based and fixed fees are set up at the expected cadences on your plans.
- For fixed fees, confirm that your setting of
in advance
andin arrears
matches how you invoice—for fees paid upfront for the following month (common for platform access or seats), pick the former. For fees like support, pick the latter. - Ensure discounts are scoped to only the prices that they should apply to. Be particularly wary of stacking discounts between prices and at the plan level. Ensure you understand how the ordering of adjustments (minimums, maximums, discounts) applies to your use case.
Subscription management
- Ensure you've tested all plan upgrade/downgrade cases with your integration. Typically, this means auditing the set of invoices that will be produced as a result. Pay attention to the
effective_time
of each transition; it's common for upgrades to be immediate and downgrades to take effect at the end of the term. - Ensure that you've tested changing fixed-fee quantities if applicable, to understand how they interact with your specific subscription setup.
- If you're using add-ons, test via the subscription edits API and review the timeline to understand how changing prices impact your subscription's invoices.
- If applicable, ensure that your integration handles future-scheduled subscriptions and cancellations (including backdated cancellations).
- If required, set metadata on the Orb customer or subscription to map to properties of your system — sometimes, this is used for 'entitlement-lite' use cases.
- If your subscription has a phase, simulate phase transitions by backdating the subscription for several billing periods and confirm the set of invoices produced is what you'd expect.
- Confirm that you've set the correct timezone for your customers, which will determine their billing periods.
Prepaid credits
- If you're using prepaid credits, ensure you understand the overage behavior to properly communicate and collect on invoices once credits are exhausted.
- Review Orb's documentation on how prepaid credits are consumed daily — adding credits in the middle of the month will only cover subsequent charges.
- Ensure you understand the distinction between prepaid credits and invoicing balance (post-tax, effectively a payment method).
- Review how Orb applies adjustments (e.g. discounts) in the presence of virtual currencies or prepaid credits.
Payments and invoicing
- Have you considered which customers you'd like to auto-collect on vs. manually invoice?
- Test your tax integration, ensuring your products are correctly set up and mapped. Confirm that you see the reported transaction in your tax provider.
- Confirm that invoices are set to issue if this is what you'd expect automatically.
- For auto-collection, confirm that you're setting the customer's default Stripe payment method, as this is what Orb uses to pull in and determine the payment method.
- Review Orb's dunning behavior — Orb will automatically retry payment (if auto-collection is on) on a fixed schedule and when a payment method is changed/added.
- If you're syncing your invoices to a solution like Stripe Invoicing, ensure that you've checked the sync behavior of each Orb invoice. Unfortunately, due to Stripe limitations, Orb is not able to sync the full set of metadata.
- Ensure you've accounted for the grace period delay in invoice issuance (typically, 12 hours for any invoice containing a usage-based fee).
- If you're handling manual payments, ensure you have a workflow to mark the invoice as void or paid accordingly in Orb. This will often require an API integration.