# BillingFlowParams.ProrationMode

# BillingFlowParams.ProrationMode

<br />

```
@Retention(value = java.lang.annotation.RetentionPolicy.SOURCE)
public annotation BillingFlowParams.ProrationMode
```

<br />

*** ** * ** ***

| **This annotation is deprecated.**   
|
| use[SubscriptionUpdateParams.ReplacementMode](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.SubscriptionUpdateParams.ReplacementMode)instead.

Replace SKU ProrationMode.

## Summary

|   ### Constants    |
|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `static final int` | [DEFERRED](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#DEFERRED())` = 4` Replacement takes effect when the old plan expires, and the new price will be charged at the same time.                                                                                                                               |
| `static final int` | [IMMEDIATE_AND_CHARGE_FULL_PRICE](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_AND_CHARGE_FULL_PRICE())` = 5` Replacement takes effect immediately, and the user is charged full price of new plan and is given a full billing cycle of subscription, plus remaining prorated time from the old plan. |
| `static final int` | [IMMEDIATE_AND_CHARGE_PRORATED_PRICE](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_AND_CHARGE_PRORATED_PRICE())` = 2` Replacement takes effect immediately, and the billing cycle remains the same.                                                                                                   |
| `static final int` | [IMMEDIATE_WITHOUT_PRORATION](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_WITHOUT_PRORATION())` = 3` Replacement takes effect immediately, and the new price will be charged on next recurrence time.                                                                                                |
| `static final int` | [IMMEDIATE_WITH_TIME_PRORATION](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_WITH_TIME_PRORATION())` = 1` Replacement takes effect immediately, and the remaining time will be prorated and credited to the user.                                                                                     |
| `static final int` | [UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY())` = 0`                                                                                                                                                             |

## Constants

### DEFERRED

```
public static final int DEFERRED = 4
```

Replacement takes effect when the old plan expires, and the new price will be charged at the same time.  

### IMMEDIATE_AND_CHARGE_FULL_PRICE

```
public static final int IMMEDIATE_AND_CHARGE_FULL_PRICE = 5
```

Replacement takes effect immediately, and the user is charged full price of new plan and is given a full billing cycle of subscription, plus remaining prorated time from the old plan.  

### IMMEDIATE_AND_CHARGE_PRORATED_PRICE

```
public static final int IMMEDIATE_AND_CHARGE_PRORATED_PRICE = 2
```

Replacement takes effect immediately, and the billing cycle remains the same. The price for the remaining period will be charged. This option is only available for subscription upgrade.  

### IMMEDIATE_WITHOUT_PRORATION

```
public static final int IMMEDIATE_WITHOUT_PRORATION = 3
```

Replacement takes effect immediately, and the new price will be charged on next recurrence time. The billing cycle stays the same.  

### IMMEDIATE_WITH_TIME_PRORATION

```
public static final int IMMEDIATE_WITH_TIME_PRORATION = 1
```

Replacement takes effect immediately, and the remaining time will be prorated and credited to the user. This is the current default behavior.  

### UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY

```
public static final int UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY = 0
```