RahalCorporate
BudgetsReference

Company Settings Reference

Complete reference for company budget settings

Company Budget Settings Reference

This reference documents all company-level budget settings.

Settings Entity

FieldTypeRequiredDefaultDescription
idstringAuto-Unique identifier
companyIdstringYes-Parent company
requireBudgetForBookingbooleanNofalseWhether budget is required
defaultEnforcementModeenumNoWARN_WHEN_EXCEEDEDDefault for new budgets
reserveBudgetAtenumNoON_REQUESTWhen to reserve budget
includePendingInAvailabilitybooleanNotrueCount pending as used
pendingReservationTimeoutHoursnumberNo72Hours before releasing
approvalExpirationHoursnumberNo48Hours to complete after approval
creditRefundsToBudgetbooleanNotrueWhether refunds credit budget
refundCreditPeriodenumNoCURRENT_PERIODWhich period gets credit
sendBudgetAlertsbooleanNotrueWhether to send alerts
alertRecipientsstring[]No[]Email addresses for alerts

Field Details

requireBudgetForBooking

ValueBehavior
falseUsers without budgets can book freely
trueUsers must have budget to book

Impact when true:

  • Users with no budget assignment cannot book
  • Ensures all travel is budget-tracked
  • May block contractors/guests unexpectedly

defaultEnforcementMode

Sets the default for new budgets.

ValueDescription
TRACK_ONLYNo restrictions, monitoring only
WARN_WHEN_EXCEEDEDShow warning, allow proceed
REQUIRE_APPROVAL_WHEN_EXCEEDEDRoute to approval
BLOCK_WHEN_EXCEEDEDPrevent booking

Usage:

  • Pre-fills enforcement mode in budget creation form
  • Individual budgets can override

reserveBudgetAt

Controls when budget is reserved.

ValueWhen ReservedTrade-off
ON_REQUESTBooking request createdSafest, locks budget early
ON_APPROVALRequest approvedBalanced
ON_CONFIRMATIONPayment confirmedMost flexible, highest risk

Recommended: ON_REQUEST for accurate availability

includePendingInAvailability

ValueAvailable Calculation
trueTotal - Spent - Pending
falseTotal - Spent

Impact:

  • true: Accurate real-time availability
  • false: Optimistic, may overspend

pendingReservationTimeoutHours

Hours before releasing abandoned reservations.

Range1 - 720 (30 days)
Default72 hours

Behavior:

  • Background job checks periodically
  • Reservations older than timeout are released
  • Released amount returns to available

approvalExpirationHours

Hours to complete booking after approval.

Range1 - 168 (7 days max)
Default48 hours

Behavior:

  • After approval, user has this long to pay
  • If expired, budget reservation released
  • User would need to re-request

creditRefundsToBudget

ValueBehavior
trueRefunds increase available budget
falseRefunds don't affect budget

refundCreditPeriod

Which period receives refund credit.

ValueBehavior
CURRENT_PERIODCredit to active period
ORIGINAL_PERIODCredit to booking's period

Considerations:

  • CURRENT_PERIOD: User gets budget back now
  • ORIGINAL_PERIOD: Accurate historical reporting

sendBudgetAlerts

ValueBehavior
trueSend threshold and violation alerts
falseNo automated alerts

alertRecipients

Array of email addresses to receive alerts.

Example: finance@company.com, travel.admin@company.com

Default Values

When company settings aren't configured:

SettingDefault Value
requireBudgetForBookingfalse
defaultEnforcementModeWARN_WHEN_EXCEEDED
reserveBudgetAtON_REQUEST
includePendingInAvailabilitytrue
pendingReservationTimeoutHours72
approvalExpirationHours48
creditRefundsToBudgettrue
refundCreditPeriodCURRENT_PERIOD
sendBudgetAlertstrue
alertRecipients(empty)

Settings Interactions

Reservation Timing + Pending

CombinationEffect
ON_REQUEST + includePending=trueMost accurate
ON_REQUEST + includePending=falseOptimistic, concurrent risk
ON_CONFIRMATION + anyHighest overspend risk

Refunds + Period

CombinationUse Case
creditRefunds=true + CURRENTPractical - user gets budget
creditRefunds=true + ORIGINALReporting - accurate history
creditRefunds=falseBudget is one-way spend only

On this page