Join usage-based billing early access (beta)
Usage-based billing is in early access (beta). Read how it works, then apply to join. We'll reach out if you meet the program requirements.
Occurs when usage draws a customer's usage balance down to 0. Its balance.remaining.total is "0".
It occurs once when the balance runs out, not for each usage event after that. It doesn't occur when unused usage expires at the end of a billing period. It can occur again after the customer gets more usage from a renewal or a plan change, then runs out again.
During early access (beta), Paddle never blocks usage. After a usage balance runs out, Paddle keeps recording usage as overage, and you decide whether to keep providing the feature. Use this event to restrict access, let the customer know, or prompt them to upgrade. To learn more, see Set up usage-based billing.
Payload includes the complete usage balance entity. It doesn't include a subscription ID, so use customer_id and usage_balance_unit_id to match it to the customer and feature in your app.
evt_01gks14ge726w50ch2tmaw2a1xevt_.^evt_[a-z\d]{26}$entity.event_type.address.createdAnaddress.createdevent.address.importedAnaddress.importedevent.address.updatedAnaddress.updatedevent.adjustment.createdAnadjustment.createdevent.adjustment.updatedAnadjustment.updatedevent.
+ Show all values− Hide values
api_key.createdAnapi_key.createdevent.api_key.expiredAnapi_key.expiredevent.api_key.expiringAnapi_key.expiringevent.api_key.revokedAnapi_key.revokedevent.api_key.updatedAnapi_key.updatedevent.api_key_exposure.createdAnapi_key_exposure.createdevent.business.createdAbusiness.createdevent.business.importedAbusiness.importedevent.business.updatedAbusiness.updatedevent.client_token.createdAclient_token.createdevent.client_token.revokedAclient_token.revokedevent.client_token.updatedAclient_token.updatedevent.customer.createdAcustomer.createdevent.customer.importedAcustomer.importedevent.customer.updatedAcustomer.updatedevent.discount.createdAdiscount.createdevent.discount.importedAdiscount.importedevent.discount.updatedAdiscount.updatedevent.discount_group.createdAdiscount_group.createdevent.discount_group.updatedAdiscount_group.updatedevent.meter.createdAmeter.createdevent.meter.updatedAmeter.updatedevent.payment_method.savedApayment_method.savedevent.payment_method.deletedApayment_method.deletedevent.payout.createdApayout.createdevent.payout.paidApayout.paidevent.price.createdAprice.createdevent.price.importedAprice.importedevent.price.updatedAprice.updatedevent.product.createdAproduct.createdevent.product.importedAproduct.importedevent.product.updatedAproduct.updatedevent.report.createdAreport.createdevent.report.updatedAreport.updatedevent.subscription.activatedAsubscription.activatedevent.subscription.canceledAsubscription.canceledevent.subscription.createdAsubscription.createdevent.subscription.importedAsubscription.importedevent.subscription.past_dueAsubscription.past_dueevent.subscription.pausedAsubscription.pausedevent.subscription.resumedAsubscription.resumedevent.subscription.trialingAsubscription.trialingevent.subscription.updatedAsubscription.updatedevent.transaction.billedAtransaction.billedevent.transaction.canceledAtransaction.canceledevent.transaction.completedAtransaction.completedevent.transaction.createdAtransaction.createdevent.transaction.paidAtransaction.paidevent.transaction.past_dueAtransaction.past_dueevent.transaction.payment_failedAtransaction.payment_failedevent.transaction.readyAtransaction.readyevent.transaction.revisedAtransaction.revisedevent.transaction.updatedAtransaction.updatedevent.usage_balance.depletedAusage_balance.depletedevent.
2024-10-12T07:20:50.52Zntf_01ghbkd0frb9k95cnhwd1bxpvkntf_.^ntf_[a-z\d]{26}$ubl_01h9zx4p8q2r5t7v9w1y3z5b7dubl_.^ubl_[a-z\d]{26}$ctm_01grnn4zta5a1mf02jjze7y2ys^ctm_[a-z\d]{26}$ubu_01kw8ta2j8x5t7q4v9m1kd6phz^ubu_[a-z\d]{26}$used.total and remaining.total."1000" or "1000.5".^(0|[1-9][0-9]{0,34})(\.[0-9]{1,9})?$^(0|[1-9][0-9]{0,34})(\.[0-9]{1,9})?$"0", after which Paddle records usage in overage. During beta, Paddle never blocks usage, so restrict access to metered features in your app when remaining.total reaches "0"."1000" or "1000.5".^(0|[1-9][0-9]{0,34})(\.[0-9]{1,9})?$^(0|[1-9][0-9]{0,34})(\.[0-9]{1,9})?$remaining reached "0" in the current billing period. Paddle doesn't bill for overage, and clears it when the subscription renews."0" or "25.5".^(0|[1-9][0-9]{0,34})(\.[0-9]{1,9})?$2024-10-12T07:20:50.52Ztotal is "0".2024-10-12T07:20:50.52Z2024-10-13T07:20:50.52Z{ "event_id": "evt_01js2n02s4fr6a8gvfm5enq0as", "event_type": "usage_balance.depleted", "occurred_at": "2026-09-27T16:42:10.283806Z", "notification_id": "ntf_01js2n03f91aw3v7q6f7x55r3z", "data": { "id": "ubl_01h9zx4p8q2r5t7v9w1y3z5b7d", "customer_id": "ctm_01gw9m680k848184fpttwr0b7z", "usage_balance_unit_id": "ubu_01kw8ta2j8x5t7q4v9m1kd6phz", "balance": { "used": { "total": "10000", "subscription": "10000" }, "remaining": { "total": "0", "subscription": "0" }, "overage": { "total": "0" } }, "created_at": "2026-09-02T10:00:00Z", "updated_at": "2026-09-27T16:42:10Z" }}