A daily allowance is a tax-free payment to an employee for the additional living costs incurred during a business trip — typically meals and incidentals. The employee doesn't submit receipts; the amount is set by national tax law (and sometimes topped up by company policy).
In the Nordics, daily allowances are a major part of expense management. Finland, Sweden, and Norway each have their own rules — different rates, different rules about partial days, different deductions when meals are provided. Bezala has a calculator per country built in.
What's in a daily allowance
A daily allowance has:
A user — the employee taking the trip.
A destination country — chosen from /api/countries. Determines the daily rate and the calculation rules.
A list of entries — one per day or partial-day of the trip. Each entry has a date, a duration (full day, half day, "over six hours", etc., depending on country), and a list of free meals (deductions for meals the employee didn't have to pay for).
A description — the business purpose.
Optional cost centers — one per dimension.
Bezala calculates the cost: total compensation, deductions for free meals, and (for Sweden specifically) the taxable-with-tax portion.
Countries and conditional values
Daily allowance fields are conditional. The set of valid daily-rate options, the partial-day structures, the deduction percentages — all of these depend on the destination country, the year, and the company's settings. To get the right options for a specific allowance:
The response gives you the valid choices for each conditional field. If you're building a UI, drive your dropdowns from this. If you're doing batch import, the safer path is to call conditional_values after creating a draft and validate your import against what comes back.
Calculating the cost up-front
Before submitting, you can ask Bezala to compute the cost of a hypothetical allowance:
The response is the breakdown in cents:
total_cost_cents is what the employee gets paid. deduction_cost_cents is the amount that would have been paid if no meals were free — i.e. the deductions already taken. taxable_with_tax_cents is non-null only for Swedish allowances, and it's the part of the payment that's taxable for the employee in the year it's paid (Swedish rules treat amounts above the tax-free ceiling as a regular taxable salary).
This endpoint is great for showing an employee "your allowance will be €X" before they submit, and for letting integrations validate cost before pushing into Bezala.
Submitting a daily allowance
The structure mirrors calculate_cost, plus the standard fields:
The exact field names for entry type and free_meals depend on the country — they come from conditional_values. Don't hard-code them.
Lifecycle
Same lifecycle as receipts: draft → reviewing → unapproved/queue → accounted. The transition endpoints follow the same pattern:
The list endpoint takes the standard state, user_id, date_range, updated_after filters.
Action | Endpoint |
Approve | PUT /api/daily_allowances/:id/approve |
Approve with edits | same, with body |
Disapprove with comment | POST /api/daily_allowances/:id/disapprove |
Show details | GET /api/daily_allowances/:id |
List | GET /api/daily_allowances |
How daily allowances become accounting entries
When the accounting batch runs, daily allowances generate journal entries crediting the asset account "Reimbursable to employee" (or similar — depends on company config) and debiting the expense account configured per country. The SEPA file pays the employee.
The exact account configuration is set in the company-level allowance settings, not on each individual allowance. If you're integrating and want to override the asset account, you can't do it on the allowance itself — you'd be editing company config.
Country-specific notes
Finland. The daily allowance is structured around full and partial days, with the rate set by Verohallinto every year. Free meals reduce the allowance by 50% per meal up to a documented cap. The endpoints work as documented above.
Sweden. Skatteverket sets a tax-free ceiling per day. Above the ceiling, the allowance is taxable salary. Bezala's calculator tracks both the gross amount and the taxable_with_tax portion. There's also a separate endpoint, /api/skatteverket_declarations, that produces the year-end declaration files Swedish employers must submit.
Norway. Per Skatteetaten's rules. Distinguishes domestic (six-hour and over-twelve-hour) from foreign rates with country-specific multipliers. Same calculator pattern.
If your customer base is single-country, your integration can hard-code the country's specific structure. If it spans multiple countries, drive everything from conditional_values.
Common integration patterns
Travel platform → Bezala. When a trip is booked, your integration creates a draft daily allowance with the destination country and dates pre-filled. The employee opens Bezala, confirms the entries, and submits. This avoids the most error-prone part of allowance entry (typing in the country and dates).
Time-tracking → daily allowance. If your time-tracking system already records away-from-base days, post a daily allowance per business trip rather than per day. Group consecutive days in the destination country into a single allowance with multiple entries.
HR system → daily allowance. Payroll systems often need daily allowance data to calculate the year-end W-2 / KU / kontrolluppgift. Pull the list with GET /api/daily_allowances?state=accounted&date_range=... and feed it into payroll.




