{"section":"tutorials","requestedLocale":"en","requestedSlug":"budgets-overview","locale":"en","slug":"budgets-overview","path":"docs/en/tutorials/b2b/b2b-buyer-portal/budgets-overview.md","branch":"main","content":"Budget management allows B2B organizations to plan, allocate, and track their expenses in a structured way. It allows creating and managing budgets and allocations, recording financial movements such as transactions and reservations, and tracking all activity through statements, ensuring transparency, traceability, and control over buyer spending.\n\nYou can subdivide a budget into multiple allocations, and all transaction movements — such as debits, credits, and refunds — update these balances based on their rules. The feature supports flows in which organizations create budgets and allocations, balances are consumed by transactions or temporary reservations, and teams later use statements to reconcile financial activity over time.\n\n> ⚠️ This feature is only available for stores using [B2B Buyer Portal](https://help.vtex.com/en/docs/tutorials/b2b-buyer-portal), which is currently available to selected accounts.\n\n## Key concepts\n\n### Budget\n\nRepresents a financial amount used to control expenses within a specific business context, such as an organizational unit or a cost center. It defines:\n\n* Total available amount\n* The period during which this amount can be used, defined by a start date and, optionally, an end date.\n\nAllocations and transactions update the budget balance as their values change.\n\n### Allocations\n\nAllocations are a subdivision of a budget, allowing the total amount to be distributed among different entities, such as users, addresses, or accounting dimensions (for example, cost centers). Any change to the balance in an allocation automatically updates the budget it belongs to.\n\n### Transactions\n\nTransactions are permanent financial movements that adjust allocation and budget balances. The platform records them in statements, and each transaction uses a type field to indicate its effect:\n\n* **DEBIT**: Subtracts amounts from the balance.\n* **CREDIT**: Adds amounts to the balance (for example, refunds and cancellations).\n\n### Reservations\n\nReservations temporarily block an amount from an allocation without consuming it immediately. Later, you can:\n\n* Confirm the reservation, generating a corresponding **transaction**.\n* Cancel the reservation, releasing the reserved amount without generating any entry in the **statements**.\n\n### Refunds and transaction types\n\nYou can't delete transactions. To reverse a transaction, you need to create a **refund**, which the platform represents as a new **transaction** of type CREDIT. The statements reflect both the original DEBIT transaction and the CREDIT refund, resulting in a net-zero effect on the budget or allocation balance.\n\n### Statements\n\nStatements are lists of financial records for a budget or allocation that show the transaction history over time. They display information such as identifiers, values, dates, types, and context, which allows auditing and reconciling financial operations.\n\n### Context\n\nThe context identifies where a budget applies. The `contextType` and `contextId` fields represent it. In the B2B context, `contextType` is always `UNIT`, while `contextId` identifies the specific unit (`unitId`) where you create the budget.\n\n### Linked entity and notification settings\n\nYou can associate allocations with a **linked entity**, which describes the element the allocation is linked to, such as a user, an address, or an accounting field (example: cost center). You can also configure budgets and allocations with **notification settings** to define alerts based on consumption thresholds or percentages.\n\n## Use cases\n\n### Controlling B2B expenses by unit\n\nA B2B organization may need to limit how much each business unit can spend within a given period. You can create budgets associated with the `UNIT` context type (`contextType`) to manage consumption centrally.\n\n### Tracking and auditing budget use\n\nFinancial or operational teams often need visibility into how budgets are used over time. You can record all consumed amounts as **transactions** and retrieve detailed **statements** for budgets and allocations, supporting internal audits, reconciliation with external financial systems, and periodic reporting.\n\n### Temporary reservations and approval flows\n\nSome business flows require that amounts be reserved before final approval or order completion. You can create reservations that temporarily block an amount in an allocation. Depending on the outcome of the process, you can confirm the reservation (generating a transaction) or cancel it (releasing the amount).\n\n### Managing refunds and balance corrections\n\nWhen orders are canceled or adjustments are needed, you may need to return funds to an allocation. Instead of removing an existing transaction, you can issue a refund, which the platform records as a **CREDIT** transaction, adding the amount back to the balance. Both the original debit and the refund credit remain visible in the statements, ensuring transparency.\n\n### Monitoring consumption with notifications\n\nYou can configure budgets with notifications based on value thresholds or usage percentages. This triggers alerts when consumption approaches or reaches critical levels, helping teams respond and adjust allocations or spending behavior before budgets run out."}