← All APIs Finance

Travel Per Diem & Allowance Calculator

Compliant per diems in one call: official US GSA, German BMF and UK HMRC rates, with a trip calculator that applies each country's rules.

Stop maintaining per diem spreadsheets. Send an itinerary, get back the allowance for every day, with partial days, first/last-day rules and provided-meal deductions already applied, and the rule and official source cited on every line. Rates come from the official publications for the US, Germany and the UK, in one JSON schema.

Built for expense-management and travel SaaS, payroll/HR tools, ERP integrators and AI finance agents (also available as an MCP server). No need to track the yearly BMF, GSA and HMRC updates yourself.

Regimes - de-bmf – German Verpflegungsmehraufwand and Übernachtungspauschale: domestic 28/14 € and the full foreign table of the BMF letter of 5 Dec 2025 (valid 2026), including city rows (Paris + départements 77/78/91-95, London, New York…), the "im Übrigen" fallback, Luxembourg for unlisted countries and the letter's special assignments. - us-gsa – US GSA CONUS lodging + M&IE for FY2026 and FY2027 (picked by date), seasonal lodging, ZIP lookup, standard-rate fallback and the M&IE breakdown. - uk-hmrc – HMRC benchmark scale rates for employees travelling outside the UK (285 cities, local currencies).

Endpoints - GET /rates – the rate for a place and date, with breakdown, source citation and data_as_of. - POST /trip – per-day (or per-24h-period) allowances for an itinerary. It applies each regime's rules and states the rule on every line: partial arrival/departure days, the 8 h, 12 h, 5 h and 10 h thresholds, 75 % first/last day, meal deductions (BMF 20 %/40 % of the full-day rate; GSA full meal amount with an incidentals floor; HMRC meal rates), multi-country days and home stop-overs. - GET /regimes – supported and planned regimes, validity and freshness. - GET /locations – searchable locations per regime (English and German names).

Example – POST /trip with regime de-bmf, 3 days in Paris, breakfast provided on day 2:

{"regime": "de-bmf", "currency": "EUR", "total": 442.4,
 "meals_total": 136.0, "deductions_total": -11.6, "lodging_total": 318.0,
 "lines": [
  {"date": "2026-10-05", "kind": "meals", "location": "Frankreich – Paris sowie die Departments 77, 78, 91 bis 95",
   "amount": 39.0, "rule": "Outbound travel day (Anreisetag, leaving home): partial-day rate of the place reached before midnight (…)"},
  {"date": "2026-10-06", "kind": "meals", "amount": 58.0, "rule": "Full day (24 h absence): full-day rate of …"},
  {"date": "2026-10-06", "kind": "deduction", "meal": "breakfast", "amount": -11.6,
   "rule": "breakfast provided: -20% of the full-day rate 58.00 EUR (§9 Abs. 4a Satz 8 EStG), never below 0."},
  {"date": "2026-10-05", "kind": "lodging", "amount": 159.0, "rule": "Übernachtungspauschale for the night …"}],
 "sources": [{"name": "BMF-Schreiben vom 5. Dezember 2025 …", "url": "https://www.bundesfinanzministerium.de/…",
              "valid_from": "2026-01-01", "valid_to": "2026-12-31", "data_as_of": "2026-09-27"}],
 "disclaimer": "Informational only, not tax, legal or payroll advice. …"}

Country inputs accept ISO 3166-1 alpha-2 codes (FR) or English/German names. Times are local wall-clock times. Responses are informational and not tax advice.

Endpoints

GET/v1/travel-per-diem/rates

Per diem rate for a place and date — Returns the lodging and meal allowance for one location under one regime, with the regime's breakdown (BMF meal deductions, GSA M&IE breakdown and seasons, HMRC meal/room rates), fallbacks applied, source citation and data freshness. us-gsa picks the fiscal year by date (FY2026: 2025-10-01..2026-09-30, FY2027: 2026-10-01..2027-09-30).

POST/v1/travel-per-diem/trip

Calculate per diem allowances for a trip — Applies the regime's rules to an itinerary and returns one line per allowance, deduction and night, each with the rule it applied, plus totals. - de-bmf: >8 h one-day trips (last place of work), partial arrival/departure days, full days at the place reached before midnight, higher rate on a home stop-over day, 20 %/40 % meal deductions of that day's full-day rate (never below 0), Übernachtungspauschale per night. The three-month rule is not applied. - us-gsa: 75 % M&IE on first and last day, M&IE of the lodging location, last day at the last TDY location, 75 % for 12-24 h trips without lodging, full meal-amount deductions with an incidentals floor, max lodging per night by season. - uk-hmrc: 24-hour periods from arrival abroad, over-5/over-10-hour rates for the remainder, room rate per night, provided meals deducted at the HMRC meal rate of the location at 08:00 / 13:00 / 19:00 that day.

GET/v1/travel-per-diem/regimes

Supported regimes, validity and data freshness — Lists the available regimes with validity periods, snapshot dates, sources and the rules the trip calculator applies, plus regimes that are planned but not yet available.

GET/v1/travel-per-diem/locations

Search the locations of a regime — Lists the locations with their own rate in a regime (us-gsa: current fiscal-year destinations), filtered by text, country or state. Use the returned country/city/state values in /rates and /trip.

Quick start

curl "https://syntropicapi.com/v1/travel-per-diem/rates" \
  -H "X-API-Key: $API_KEY"

Full request and response schemas: interactive docs · OpenAPI JSON

Use it from an AI agent (MCP)

{
  "mcpServers": {
    "travel-per-diem": {
      "type": "http",
      "url": "https://syntropicapi.com/mcp/travel-per-diem/mcp",
      "headers": { "X-API-Key": "YOUR_KEY" }
    }
  }
}