Skip to main content

Hold and Deduct Mechanism in the Prepaid Portal

This page explains how FPT Cloud charges for resources under the prepaid model, covering the Hold mechanism (temporarily reserving funds when a resource is created) and the Deduct mechanism (actually charging for usage over time).

Hold vs Deduct

MechanismMeaningEffect on wallet
HoldTemporarily reserves funds when the customer submits a resource creation requestDoes not reduce Wallet Balance, but reduces Available Balance
DeductActually charges for the resource's usageDirectly reduces Wallet Balance

These two mechanisms occur at different times: Hold happens only once at creation time, while Deduct occurs periodically on each billing cycle for as long as the resource is running.

Note: The system does not pre-hold funds for each subsequent billing hour. Once the resource is successfully created, the Hold is released and only Deduct occurs from that point on.

Why is the Hold mechanism needed?

When a customer submits a resource creation request, the system must verify the wallet has sufficient balance before provisioning. The Hold mechanism serves three purposes:

  • Ensures the customer has the minimum balance required to create the resource.
  • Prevents multiple concurrent creation requests from being accepted when the balance is insufficient.
  • Prevents mass resource creation or spam requests that exceed the wallet's payment capacity.

How is Available Balance calculated?

The system uses Available Balance — not the full Wallet Balance — to determine how much a customer can still use to create new resources.

Available Balance = Wallet Balance - On Hold Balance
CaseWallet BalanceOn Hold BalanceAvailable Balance
No active Hold100,000 ₫0 ₫100,000 ₫
Active Hold in place100,000 ₫30,000 ₫70,000 ₫

Timeline for one usage cycle

Example parameters:

  • Initial Wallet Balance: 100,000 ₫
  • Instance price: 10,000 ₫/hour
  • Minimum Hold amount: 10,000 ₫
T=0                    Instance created         T=1h              T=2h
| | | |
| Request to create | | |
| Instance | | |
v v v v
Hold 10,000 ₫ ───────> Release Hold Deduct 10,000 ₫ Deduct 10,000 ₫
(Available drops) (Available restored) (Wallet drops) (Wallet drops)

Corresponding balance changes:

TimestampActionWallet BalanceOn Hold BalanceAvailable Balance
Before creating InstanceNo Hold in place100,000 ₫0 ₫100,000 ₫
T=0 — Create Instance requestSystem holds 10,000 ₫100,000 ₫10,000 ₫90,000 ₫
Instance created successfullyHold released100,000 ₫0 ₫100,000 ₫
T=1hDeduct for first hour of usage90,000 ₫0 ₫90,000 ₫
T=2hDeduct for second hour of usage80,000 ₫0 ₫80,000 ₫

Note: The Hold at T=0 is not a prepayment for the first hour. It is a temporary reservation used to verify the wallet balance during provisioning.

When Available Balance is insufficient to Hold

When the system receives a resource creation request, it performs the following steps in order:

  1. Determine the minimum Hold amount for the resource.
  2. Retrieve the wallet's current Available Balance.
  3. Compare: Available Balance >= minimum Hold amount.

Example: Available Balance is 8,000 ₫, minimum Hold amount is 10,000 ₫. Because 8,000 ₫ < 10,000 ₫, the system rejects the request due to insufficient available balance.

When is the Hold released?

The Hold is always released in the billing cycle of the next hour, regardless of whether provisioning succeeded or failed. The provisioning result only affects whether a Deduct is generated.

When the wallet has insufficient funds to Deduct

If the wallet's available balance is insufficient at the time of Deduct:

  1. The system cannot Deduct, and the resource risks being suspended.
  2. A suspended resource cannot be accessed until the customer tops up and restores it.

Recommendation: Monitor your wallet balance regularly and top up before the available balance drops below the cost of 2–3 hours of all running resources.

See also: Troubleshooting — Insufficient balance