{"openapi":"3.1.0","info":{"title":"Travel Per Diem & Allowance Calculator","summary":"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.","description":"**Stop maintaining per diem spreadsheets.** Send an itinerary, get back the allowance for every day, with\npartial days, first/last-day rules and provided-meal deductions already applied, and the rule and official source\ncited on every line. Rates come from the official publications for the US, Germany and the UK, in one JSON schema.\n\nBuilt for expense-management and travel SaaS, payroll/HR tools, ERP integrators and AI finance agents (also\navailable as an MCP server). No need to track the yearly BMF, GSA and HMRC updates yourself.\n\n**Regimes**\n- `de-bmf` – German *Verpflegungsmehraufwand* and *Übernachtungspauschale*: domestic 28/14 € and the full\n  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…),\n  the \"im Übrigen\" fallback, Luxembourg for unlisted countries and the letter's special assignments.\n- `us-gsa` – US GSA CONUS lodging + M&IE for FY2026 and FY2027 (picked by date), seasonal lodging, ZIP lookup,\n  standard-rate fallback and the M&IE breakdown.\n- `uk-hmrc` – HMRC benchmark scale rates for employees travelling outside the UK (285 cities, local currencies).\n\n**Endpoints**\n- `GET /rates` – the rate for a place and date, with breakdown, source citation and `data_as_of`.\n- `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.\n- `GET /regimes` – supported and planned regimes, validity and freshness.\n- `GET /locations` – searchable locations per regime (English and German names).\n\n**Example** – `POST /trip` with regime `de-bmf`, 3 days in Paris, breakfast provided on day 2:\n```json\n{\"regime\": \"de-bmf\", \"currency\": \"EUR\", \"total\": 442.4,\n \"meals_total\": 136.0, \"deductions_total\": -11.6, \"lodging_total\": 318.0,\n \"lines\": [\n  {\"date\": \"2026-10-05\", \"kind\": \"meals\", \"location\": \"Frankreich – Paris sowie die Departments 77, 78, 91 bis 95\",\n   \"amount\": 39.0, \"rule\": \"Outbound travel day (Anreisetag, leaving home): partial-day rate of the place reached before midnight (…)\"},\n  {\"date\": \"2026-10-06\", \"kind\": \"meals\", \"amount\": 58.0, \"rule\": \"Full day (24 h absence): full-day rate of …\"},\n  {\"date\": \"2026-10-06\", \"kind\": \"deduction\", \"meal\": \"breakfast\", \"amount\": -11.6,\n   \"rule\": \"breakfast provided: -20% of the full-day rate 58.00 EUR (§9 Abs. 4a Satz 8 EStG), never below 0.\"},\n  {\"date\": \"2026-10-05\", \"kind\": \"lodging\", \"amount\": 159.0, \"rule\": \"Übernachtungspauschale for the night …\"}],\n \"sources\": [{\"name\": \"BMF-Schreiben vom 5. Dezember 2025 …\", \"url\": \"https://www.bundesfinanzministerium.de/…\",\n              \"valid_from\": \"2026-01-01\", \"valid_to\": \"2026-12-31\", \"data_as_of\": \"2026-09-27\"}],\n \"disclaimer\": \"Informational only, not tax, legal or payroll advice. …\"}\n```\nCountry inputs accept ISO 3166-1 alpha-2 codes (`FR`) or English/German names. Times are local wall-clock times.\nResponses are informational and not tax advice.","version":"1.0.0"},"servers":[{"url":"https://syntropicapi.com"}],"paths":{"/v1/travel-per-diem/rates":{"get":{"summary":"Per diem rate for a place and date","description":"Returns the lodging and meal allowance for one location under one regime, with the regime's breakdown\n(BMF meal deductions, GSA M&IE breakdown and seasons, HMRC meal/room rates), fallbacks applied, source citation\nand data freshness. us-gsa picks the fiscal year by date (FY2026: 2025-10-01..2026-09-30, FY2027: 2026-10-01..2027-09-30).","operationId":"get_per_diem_rates","parameters":[{"name":"regime","in":"query","required":true,"schema":{"enum":["de-bmf","us-gsa","uk-hmrc"],"type":"string","description":"de-bmf (Germany), us-gsa (US CONUS) or uk-hmrc (UK overseas scale rates)","title":"Regime"},"description":"de-bmf (Germany), us-gsa (US CONUS) or uk-hmrc (UK overseas scale rates)"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":60},{"type":"null"}],"description":"ISO alpha-2 code or English/German name. Default: DE for de-bmf, US for us-gsa","title":"Country"},"description":"ISO alpha-2 code or English/German name. Default: DE for de-bmf, US for us-gsa"},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"City; unlisted cities fall back per the regime's rules","title":"City"},"description":"City; unlisted cities fall back per the regime's rules"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"description":"US state code (us-gsa)","title":"State"},"description":"US state code (us-gsa)"},{"name":"postal_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"US ZIP (us-gsa) or French postcode (de-bmf)","title":"Postal Code"},"description":"US ZIP (us-gsa) or French postcode (de-bmf)"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Travel date (ISO 8601). Default: today (UTC)","title":"Date"},"description":"Travel date (ISO 8601). Default: today (UTC)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/travel-per-diem/trip":{"post":{"summary":"Calculate per diem allowances for a trip","description":"Applies the regime's rules to an itinerary and returns one line per allowance, deduction and night, each with\nthe rule it applied, plus totals.\n\n- de-bmf: >8 h one-day trips (last place of work), partial arrival/departure days, full days at the place reached\n  before midnight, higher rate on a home stop-over day, 20 %/40 % meal deductions of that day's full-day rate\n  (never below 0), Übernachtungspauschale per night. The three-month rule is not applied.\n- 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\n  12-24 h trips without lodging, full meal-amount deductions with an incidentals floor, max lodging per night by season.\n- uk-hmrc: 24-hour periods from arrival abroad, over-5/over-10-hour rates for the remainder, room rate per night,\n  provided meals deducted at the HMRC meal rate of the location at 08:00 / 13:00 / 19:00 that day.","operationId":"calculate_trip_allowance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/travel-per-diem/regimes":{"get":{"summary":"Supported regimes, validity and data freshness","description":"Lists the available regimes with validity periods, snapshot dates, sources and the rules the trip calculator\napplies, plus regimes that are planned but not yet available.","operationId":"list_per_diem_regimes","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegimesOut"}}}}}}},"/v1/travel-per-diem/locations":{"get":{"summary":"Search the locations of a regime","description":"Lists the locations with their own rate in a regime (us-gsa: current fiscal-year destinations), filtered by text,\ncountry or state. Use the returned country/city/state values in /rates and /trip.","operationId":"search_per_diem_locations","parameters":[{"name":"regime","in":"query","required":true,"schema":{"enum":["de-bmf","us-gsa","uk-hmrc"],"type":"string","description":"Regime to search","title":"Regime"},"description":"Regime to search"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Case- and accent-insensitive text search over city, country, state, county and aliases","title":"Q"},"description":"Case- and accent-insensitive text search over city, country, state, county and aliases"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":60},{"type":"null"}],"description":"Only this country (ISO alpha-2 or name)","title":"Country"},"description":"Only this country (ISO alpha-2 or name)"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"description":"Only this US state (us-gsa)","title":"State"},"description":"Only this US state (us-gsa)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Maximum items to return","default":50,"title":"Limit"},"description":"Maximum items to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Items to skip","default":0,"title":"Offset"},"description":"Items to skip"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BmfDetail":{"properties":{"full_day":{"type":"number","title":"Full Day","description":"Allowance for 24 h absence (EUR)"},"partial_day":{"type":"number","title":"Partial Day","description":"Allowance for arrival/departure day or >8 h one-day trip (EUR)"},"lodging_flat":{"type":"number","title":"Lodging Flat","description":"Übernachtungspauschale per night for employer reimbursement (EUR)"},"deduction_breakfast":{"type":"number","title":"Deduction Breakfast","description":"Deduction if breakfast is provided: 20 % of full_day"},"deduction_lunch":{"type":"number","title":"Deduction Lunch","description":"Deduction if lunch is provided: 40 % of full_day"},"deduction_dinner":{"type":"number","title":"Deduction Dinner","description":"Deduction if dinner is provided: 40 % of full_day"},"domestic":{"type":"boolean","title":"Domestic","description":"True for trips inside Germany"}},"type":"object","required":["full_day","partial_day","lodging_flat","deduction_breakfast","deduction_lunch","deduction_dinner","domestic"],"title":"BmfDetail"},"CurrencyTotal":{"properties":{"currency":{"type":"string","title":"Currency","description":"ISO 4217 currency"},"meals":{"type":"number","title":"Meals","description":"Meal allowances before deductions"},"deductions":{"type":"number","title":"Deductions","description":"Meal deductions (negative; capped so meals never go below 0)"},"lodging":{"type":"number","title":"Lodging","description":"Lodging amounts"},"total":{"type":"number","title":"Total","description":"meals + deductions (floored at 0) + lodging"}},"type":"object","required":["currency","meals","deductions","lodging","total"],"title":"CurrencyTotal"},"GsaDetail":{"properties":{"fiscal_year":{"type":"integer","title":"Fiscal Year","description":"US federal fiscal year (Oct 1 – Sep 30)"},"destination":{"type":"string","title":"Destination","description":"GSA destination name or 'Standard CONUS rate'"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"US state code"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County","description":"County / location defined by GSA"},"lodging":{"type":"integer","title":"Lodging","description":"Maximum lodging rate for the requested date (USD, taxes excluded)"},"mie":{"type":"integer","title":"Mie","description":"Meals & incidental expenses rate per full day (USD)"},"breakfast":{"type":"integer","title":"Breakfast","description":"M&IE breakdown: breakfast"},"lunch":{"type":"integer","title":"Lunch","description":"M&IE breakdown: lunch"},"dinner":{"type":"integer","title":"Dinner","description":"M&IE breakdown: dinner"},"incidentals":{"type":"integer","title":"Incidentals","description":"M&IE breakdown: incidental expenses"},"first_last_day":{"type":"number","title":"First Last Day","description":"75 % of M&IE for the first and last day of travel"},"seasons":{"items":{"$ref":"#/components/schemas/GsaSeason"},"type":"array","title":"Seasons","description":"Lodging seasons of this destination for the fiscal year"},"standard":{"type":"boolean","title":"Standard","description":"True if the standard CONUS rate applies"}},"type":"object","required":["fiscal_year","destination","state","county","lodging","mie","breakfast","lunch","dinner","incidentals","first_last_day","seasons","standard"],"title":"GsaDetail"},"GsaSeason":{"properties":{"start":{"type":"string","title":"Start","description":"Season start as MM-DD"},"end":{"type":"string","title":"End","description":"Season end as MM-DD"},"lodging":{"type":"integer","title":"Lodging","description":"Maximum lodging rate per night (USD)"},"mie":{"type":"integer","title":"Mie","description":"M&IE rate per day (USD)"}},"type":"object","required":["start","end","lodging","mie"],"title":"GsaSeason"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HmrcDetail":{"properties":{"city":{"type":"string","title":"City","description":"City as listed by HMRC"},"currency":{"type":"string","title":"Currency","description":"ISO 4217 currency of the rates (unless a field's own currency says otherwise)"},"over_5_hours":{"type":"number","title":"Over 5 Hours","description":"Rate for a period of more than 5 hours"},"over_10_hours":{"type":"number","title":"Over 10 Hours","description":"Rate for a period of more than 10 hours"},"rate_24_hours":{"type":"number","title":"Rate 24 Hours","description":"24-hour rate, excluding the room rate"},"room":{"type":"number","title":"Room","description":"Room rate per night"},"room_currency":{"type":"string","title":"Room Currency","description":"Currency of the room rate"},"breakfast":{"type":"number","title":"Breakfast","description":"Breakfast rate (0 when included in the room rate)"},"lunch":{"type":"number","title":"Lunch","description":"Lunch rate"},"dinner":{"type":"number","title":"Dinner","description":"Dinner rate"},"other":{"type":"number","title":"Other","description":"'Other' meal/incidentals component of the HMRC table"},"drinks":{"type":"number","title":"Drinks","description":"Drinks component"},"hotel_to_office":{"type":"number","title":"Hotel To Office","description":"Hotel-to-office travel component"},"total_residual":{"type":"number","title":"Total Residual","description":"Subsistence per 24 h when the room is paid separately"},"breakfast_included_in_room":{"type":"boolean","title":"Breakfast Included In Room","description":"HMRC marks breakfast as included in the room rate"}},"type":"object","required":["city","currency","over_5_hours","over_10_hours","rate_24_hours","room","room_currency","breakfast","lunch","dinner","other","drinks","hotel_to_office","total_residual","breakfast_included_in_room"],"title":"HmrcDetail"},"LegIn":{"properties":{"country":{"type":"string","maxLength":60,"minLength":2,"title":"Country","description":"ISO alpha-2 code or English/German country name"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City","description":"City (BMF city rows, GSA destination, HMRC city)"},"state":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"State","description":"US state code (us-gsa)"},"postal_code":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Postal Code","description":"US ZIP (us-gsa) or French postcode (de-bmf Paris region)"},"arrive":{"type":"string","format":"date-time","title":"Arrive","description":"Local arrival time at this destination (ISO 8601)"},"depart":{"type":"string","format":"date-time","title":"Depart","description":"Local departure time from this destination (ISO 8601)"},"transport":{"type":"string","enum":["flight","ship","train","car","other"],"title":"Transport","description":"How this destination was reached (de-bmf: multi-day flights use Austria, days at sea use Luxembourg)","default":"other"},"returns_home_before":{"type":"boolean","title":"Returns Home Before","description":"de-bmf: the traveller went home between the previous leg and this one (new trip; shared day gets the higher rate)","default":false}},"type":"object","required":["country","arrive","depart"],"title":"LegIn"},"Location":{"properties":{"country":{"type":"string","title":"Country","description":"ISO 3166-1 alpha-2 code of the rate's country (after any fallback)"},"country_name":{"type":"string","title":"Country Name","description":"English country name"},"label":{"type":"string","title":"Label","description":"Location as named by the source"},"matched_by":{"type":"string","title":"Matched By","description":"How the input was matched: city, county, postal_code, country, fallback or standard"}},"type":"object","required":["country","country_name","label","matched_by"],"title":"Location"},"LocationItem":{"properties":{"regime":{"type":"string","enum":["de-bmf","us-gsa","uk-hmrc"],"title":"Regime","description":"Regime this row belongs to"},"country":{"type":"string","title":"Country","description":"ISO 3166-1 alpha-2"},"country_name":{"type":"string","title":"Country Name","description":"English country name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City/destination label; null for the country-wide or 'rest of country' rate"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"US state (us-gsa)"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County","description":"GSA county / location defined"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","description":"Other names that match this row"}},"type":"object","required":["regime","country","country_name","city"],"title":"LocationItem"},"LocationsOut":{"properties":{"regime":{"type":"string","enum":["de-bmf","us-gsa","uk-hmrc"],"title":"Regime","description":"Regime searched"},"total":{"type":"integer","title":"Total","description":"Number of matching locations before limit/offset"},"items":{"items":{"$ref":"#/components/schemas/LocationItem"},"type":"array","title":"Items","description":"Matching locations (after limit/offset)"}},"type":"object","required":["regime","total","items"],"title":"LocationsOut"},"MealsIn":{"properties":{"date":{"type":"string","format":"date","title":"Date","description":"Calendar day the meals were provided"},"breakfast":{"type":"boolean","title":"Breakfast","description":"Breakfast was provided","default":false},"lunch":{"type":"boolean","title":"Lunch","description":"Lunch was provided","default":false},"dinner":{"type":"boolean","title":"Dinner","description":"Dinner was provided","default":false}},"type":"object","required":["date"],"title":"MealsIn"},"RatesOut":{"properties":{"regime":{"type":"string","enum":["de-bmf","us-gsa","uk-hmrc"],"title":"Regime","description":"Regime the rate comes from"},"date":{"type":"string","format":"date","title":"Date","description":"Date the rate applies to"},"currency":{"type":"string","title":"Currency","description":"ISO 4217 currency of the summary fields"},"location":{"$ref":"#/components/schemas/Location","description":"The location that was resolved from the input"},"lodging":{"type":"number","title":"Lodging","description":"Per-night lodging figure (BMF flat rate, GSA maximum, HMRC room rate)"},"meals_full_day":{"type":"number","title":"Meals Full Day","description":"Meals allowance for a full day (BMF 24 h rate, GSA M&IE, HMRC 24-hour rate)"},"meals_partial_day":{"type":"number","title":"Meals Partial Day","description":"Reduced day (BMF arrival/departure/>8 h, GSA 75 % first/last day, HMRC over-10-hours)"},"de_bmf":{"anyOf":[{"$ref":"#/components/schemas/BmfDetail"},{"type":"null"}],"description":"de-bmf breakdown (only for regime de-bmf)"},"us_gsa":{"anyOf":[{"$ref":"#/components/schemas/GsaDetail"},{"type":"null"}],"description":"us-gsa breakdown (only for regime us-gsa)"},"uk_hmrc":{"anyOf":[{"$ref":"#/components/schemas/HmrcDetail"},{"type":"null"}],"description":"uk-hmrc breakdown (only for regime uk-hmrc)"},"other_locations":{"items":{"type":"string"},"type":"array","title":"Other Locations","description":"Other listed locations in the same country for this regime"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes","description":"Fallbacks and caveats that applied"},"source":{"$ref":"#/components/schemas/Source","description":"Official publication the rate comes from"},"disclaimer":{"type":"string","title":"Disclaimer","description":"Informational use only, not tax advice"}},"type":"object","required":["regime","date","currency","location","lodging","meals_full_day","meals_partial_day","other_locations","notes","source","disclaimer"],"title":"RatesOut"},"RegimeOut":{"properties":{"id":{"type":"string","title":"Id","description":"Regime id used in the other endpoints"},"name":{"type":"string","title":"Name","description":"Human-readable regime name"},"jurisdiction":{"type":"string","title":"Jurisdiction","description":"Country/authority that publishes the rates"},"status":{"type":"string","enum":["available","planned"],"title":"Status","description":"'available' or 'planned' (not yet served)"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","description":"Currency of the rates (uk-hmrc: local currency per city)"},"coverage":{"type":"string","title":"Coverage","description":"What locations and years are covered"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From","description":"First day covered by the bundled tables"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To","description":"Last day covered by the bundled tables"},"data_as_of":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data As Of","description":"Date the bundled snapshot was taken"},"location_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Location Count","description":"Number of locations with their own rate"},"rules":{"items":{"type":"string"},"type":"array","title":"Rules","description":"Rules the trip calculator applies"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources","description":"Official publications used"}},"type":"object","required":["id","name","jurisdiction","status","currency","coverage","rules"],"title":"RegimeOut"},"RegimesOut":{"properties":{"regimes":{"items":{"$ref":"#/components/schemas/RegimeOut"},"type":"array","title":"Regimes","description":"All regimes, available and planned"},"disclaimer":{"type":"string","title":"Disclaimer","description":"Informational use only, not tax advice"}},"type":"object","required":["regimes","disclaimer"],"title":"RegimesOut"},"Source":{"properties":{"name":{"type":"string","title":"Name","description":"Official publication the numbers come from"},"url":{"type":"string","title":"Url","description":"Where to find it"},"license":{"type":"string","title":"License","description":"Reuse terms of the source"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From","description":"First day the table applies (null if the publisher gives none)"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To","description":"Last day the table applies (null if open-ended)"},"data_as_of":{"type":"string","format":"date","title":"Data As Of","description":"Date the bundled snapshot was taken from the source"}},"type":"object","required":["name","url","license","data_as_of"],"title":"Source"},"TripIn":{"properties":{"regime":{"type":"string","enum":["de-bmf","us-gsa","uk-hmrc"],"title":"Regime","description":"Which rule set to apply"},"legs":{"items":{"$ref":"#/components/schemas/LegIn"},"type":"array","maxItems":20,"minItems":1,"title":"Legs","description":"Destinations in chronological order (1-20)"},"leave_home":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Leave Home","description":"When the traveller leaves home / the first place of work (de-bmf, us-gsa). Default: first arrive"},"return_home":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Return Home","description":"When the traveller is back home. Default: last depart"},"meals_provided":{"items":{"$ref":"#/components/schemas/MealsIn"},"type":"array","maxItems":92,"title":"Meals Provided","description":"Meals provided by employer/host"},"lodging_provided":{"type":"boolean","title":"Lodging Provided","description":"Lodging paid directly by the employer: no lodging lines","default":false},"overnight":{"type":"boolean","title":"Overnight","description":"False for a trip across midnight without an overnight stay (de-bmf/us-gsa: combine hours)","default":true}},"type":"object","required":["regime","legs"],"title":"TripIn"},"TripLine":{"properties":{"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date","description":"Calendar day (HMRC: day the period starts)"},"kind":{"type":"string","enum":["meals","deduction","lodging"],"title":"Kind","description":"meals = allowance, deduction = provided-meal deduction (negative), lodging = per-night lodging"},"location":{"type":"string","title":"Location","description":"Location whose rate was used"},"amount":{"type":"number","title":"Amount","description":"Amount of this line (deductions are negative)"},"currency":{"type":"string","title":"Currency","description":"ISO 4217 currency of amount"},"rule":{"type":"string","title":"Rule","description":"The rule applied to produce this line"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate","description":"Underlying full rate the line is based on"},"meal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meal","description":"Meal a deduction refers to"},"period_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Period Start","description":"uk-hmrc: start of the 24 h / residual period"},"period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Period End","description":"uk-hmrc: end of the period"}},"type":"object","required":["date","kind","location","amount","currency","rule"],"title":"TripLine"},"TripOut":{"properties":{"regime":{"type":"string","enum":["de-bmf","us-gsa","uk-hmrc"],"title":"Regime","description":"Regime applied"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","description":"Currency of total, if the trip has a single currency"},"total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total","description":"Grand total (null if several currencies are involved; see totals)"},"meals_total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Meals Total","description":"Meal allowances before deductions (single-currency trips, else null)"},"deductions_total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deductions Total","description":"Meal deductions, negative (single-currency trips, else null)"},"lodging_total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lodging Total","description":"Lodging total (single-currency trips, else null)"},"totals":{"items":{"$ref":"#/components/schemas/CurrencyTotal"},"type":"array","title":"Totals","description":"Totals per currency"},"days":{"type":"integer","title":"Days","description":"Calendar days touched by the trip"},"lines":{"items":{"$ref":"#/components/schemas/TripLine"},"type":"array","title":"Lines","description":"One line per day/period, deduction and night, each with its rule"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes","description":"Assumptions and caveats that applied"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources","description":"Official publications used"},"disclaimer":{"type":"string","title":"Disclaimer","description":"Informational use only, not tax advice"}},"type":"object","required":["regime","currency","total","meals_total","deductions_total","lodging_total","totals","days","lines","notes","sources","disclaimer"],"title":"TripOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"security":[{"ApiKey":[]}]}