A “backdated activation” is what happens when you activate an order whose startDate is earlier than the moment you flip it to active. This is normal for historical migrations, contracts that began before they were configured in Paid, and “we’ve been live since X” onboardings. Paid handles it by backfilling three things at activation: credit grants, invoices, and historical signals. This page explains what each of those means, what is auto-finalized vs. left for review, and what does not happen.
The rest of this page documents each of these in detail and the cases where backfill does not apply.
Credit allocations are issued for every elapsed billing period from Order.startDate through “now”, inclusive of the current in-flight period.
Order.startDate (or the order’s billingAnchor day if you set one explicitly). They are not anchored to the activation date.startDate up to the activation moment receives its own grant. For a startDate three months ago on a monthly billing frequency, you get four grants: three completed months and the current one.allocationCadence: monthly, each cycle gets one full grant of the configured amount. With allocationCadence: upfront, the full amount is granted at the start of the order’s billing period instead of being spread per month.creditGrantTiming: on_order_activation, which is the timing that fires the backfill described here. If a benefit is configured with on_payment, grants are pending until the related invoice is paid. See the “What does not happen” section below.Note: the entitlement that holds these grants is created with its
startDateset toOrder.startDate. The grants you see in the credit ledger are the per-period allocations on that entitlement, not the entitlement itself.
Activation runs the billing engine across every elapsed cycle, producing one invoice per period.
DRAFT status for manual review. You will see this surfaced in your billing logs as “Historical activation detected; auto-posting the latest draft invoice only and leaving earlier drafts for manual review”.totalBilledAmount and can be posted manually whenever you’re ready. They are not placeholders.This split exists because backdated activations frequently mean “we already billed the customer for these periods through some other system”. Auto-posting all the historicals could double-charge.
Usage events that were ingested before activation are replayed automatically.
timestamp falls between Order.startDate and the activation moment, attributed to the order’s customer and the product on the order line.Order.startDate are recorded as events but have no grant to draw from. They will not retroactively create earlier grants.Tip: if your migration involves signals that pre-date the order’s
startDate, choose anstartDateearlier than your earliest in-scope signal so that replay can attribute them.
A period’s replayed signals can consume more credits than the period’s grant. Paid records this without blocking activation.
used counter on the period’s allocation can exceed total, with the excess captured as overage on the same allocation.ACTIVE. Over-consumption does not flip it to a failure state.overageUnitPrice > 0. Without overageUnitPrice, the overage is recorded for ledger/audit purposes but is not billed.This means a backdated activation against a period of high historical usage will reconcile cleanly. You’ll see exactly which periods went over and by how much, and you can decide whether to bill the excess by setting overageUnitPrice on the benefit (in advance) or by issuing a manual invoice (after the fact).
You activate today an order with startDate three months ago. The order has one product attribute:
allocationCadence: monthly, creditGrantTiming: on_order_activation, no overage unit price.test_signal event.Before activation, you sent 40 backdated test_signal events spread evenly across the three-month window.
At activation, Paid:
Order.startDate.DRAFT.Result:
totalBilledAmount: 40 ($10 × 4 months).overage on that period; no overage line is billed because overageUnitPrice is not configured.Order.startDate are not retro-attributed. Signals do not auto-create entitlements; they are recorded as events but do not generate a grant for periods before the order starts. If you need earlier historical signals to count, use an earlier startDate before activating the order.on_payment grant timing does not fire at activation. Benefits configured with creditGrantTiming: on_payment issue credits only when the related invoice is marked paid. Activation alone does not grant them.(startDate, periodStart) key. If you deactivate and re-activate, existing grants are reused, not re-issued.Order.startDate. Paid does not grant or invoice for periods before the order’s own start date, even if the product or customer existed earlier.