# Prepaid with Drawdown

The Prepaid with Drawdown feature is a pricing model for consumption-based services, such as data storage. Under this model, customers pay upfront to receive a number of units, usually for a period of time like a month or a year. Then they consume against that prepayment balance in a use-it-or-lose-it fashion, with a possibility of topping up more units or being charged for any overage. This model strikes a balance between upfront commitment and the pure pay-as-you-go pricing models. For more information, see <a href="https://docs.zuora.com?resourceId=billing-prepaid-with-drawdown-overview" target="_blank">Prepaid with Drawdown</a>.


## Reverse fund rollover

 - [POST /v1/ppdd/reverse-rollover](https://developer.zuora.com/v1-api-reference/api/prepaid-with-drawdown/post_reverserollover.md): This REST API reference describes how to manually reverse fund rollover from source validity period to destination validity period. There are no path or query parameters.

Note: This API will not work if the associated prepayment charge has rollover enabled.

## Trigger fund rollover

 - [POST /v1/ppdd/rollover](https://developer.zuora.com/v1-api-reference/api/prepaid-with-drawdown/post_rollover.md): Prepaid with Drawdown Rollover enables you to transfer the accumulative carryover of your customers’ prepaid balance funds to the following validity period when using Prepaid with Drawdown. This REST API reference describes how to manually trigger fund rollover from source validity period to destination validity period. There are no path or query parameters.

Note: This API will not work if rollover is enabled in the associated prepayment charge. If you want to trigger rollover automatically, see Create prepayment charge with rollover for more information.

## Deplete funds

 - [POST /v1/prepaid-balance-funds/deplete](https://developer.zuora.com/v1-api-reference/api/prepaid-with-drawdown/expireprepaidfunds.md): Depletes prepaid balance funds. Only unit funds and upfront currency funds can be depleted.
Supply exactly one of fundIds or depleteOptions. fundIds depletes each listed fund in full using the default accounting date. depleteOptions selects funds through each entry's fundId and lets each one carry its own accounting date and its own partial amount or quantity.
A single request cannot mix currency funds with unit or incentive funds, because the two groups are depleted through separate transactions. Such a request is rejected in full.
Two failure models apply, and they are reported differently. A problem with one fund - unknown id, deleted fund, zero balance, non-prepayment fund, a date outside the valid window, or a partial amount above the balance - returns 200. The remaining funds are still depleted, and the affected fund is listed in fundIds with status set to failed. A problem with the request as a whole depletes nothing: a malformed body returns 400, a missing Prepaid Drawdown permission returns 403, and a fund whose balance, status, or validity dates changed between validation and the write returns 200 with success set to false and the reason in reasons.

