{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Expense report with mileage - Note de frais avec relevé kilométrique / Onkostennota met kilometerstaat (BE)","description":"Internal Belgian expense report of an employee or a company director: expense lines and mileage lines with their totals, advance and net amount, the claimant's declaration and the approval. No rate, daily allowance or approval is printed unless typed; nothing is converted or computed.","type":"object","additionalProperties":false,"required":["employer","claimant","report","totals"],"properties":{"employer":{"type":"object","description":"The employer that approves and reimburses.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the employer."},"enterprise_number":{"type":"string","description":"Enterprise number of the employer (internal document).","pattern":"^[01][0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"seat_region":{"type":"string","description":"Linguistic region of the operating seat.","enum":["nl_region","fr_region","brussels","de_region"]}},"required":["name"]},"claimant":{"type":"object","description":"The person who claims the expenses.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the claimant."},"role":{"type":"string","description":"employee or director.","enum":["employee","director"]},"staff_number":{"type":"string","description":"Staff number."},"department":{"type":"string","description":"Department."},"iban":{"type":"string","description":"Bank account of the claimant."}},"required":["name","role"]},"report":{"type":"object","description":"The report.","additionalProperties":false,"properties":{"number":{"type":"string","description":"Number of the report."},"period_start":{"type":"string","description":"First day of the period.","format":"date"},"period_end":{"type":"string","description":"Last day of the period.","format":"date"},"policy_reference":{"type":"string","description":"Reference of the expense policy."},"payment_reference":{"type":"string","description":"Payment reference."}},"required":["period_start","period_end"]},"expenses":{"type":"array","description":"Expense lines.","items":{"type":"object","additionalProperties":false,"properties":{"date":{"type":"string","description":"Date of the expense.","format":"date"},"category":{"type":"string","description":"Category.","enum":["travel","meals","accommodation","representation","supplies","telecom","other"]},"description":{"type":"string","description":"Description."},"supplier":{"type":"string","description":"Supplier."},"amount":{"type":["string","number"],"description":"Amount including VAT."},"vat_amount":{"type":["string","number"],"description":"VAT amount, when given."},"receipt_attached":{"type":"boolean","description":"True if a receipt is attached."},"invoice_in_enterprise_name":{"type":"boolean","description":"True if the invoice is in the enterprise's name."},"original_amount":{"type":["string","number"],"description":"Original amount for an expense abroad (nothing is converted)."},"original_currency":{"type":"string","description":"Original currency."},"exchange_rate":{"type":"number","description":"Exchange rate applied, as typed."}},"required":["date","category","description","amount"]}},"mileage":{"type":"array","description":"Mileage lines.","items":{"type":"object","additionalProperties":false,"properties":{"date":{"type":"string","description":"Date of the trip.","format":"date"},"origin":{"type":"string","description":"Starting point."},"destination":{"type":"string","description":"Destination."},"purpose":{"type":"string","description":"Purpose of the trip."},"distance_km":{"type":"number","description":"Distance driven, in kilometres.","minimum":0},"round_trip":{"type":"boolean","description":"True if the distance is for a round trip."},"rate_eur_per_km":{"type":["string","number"],"description":"Rate applied per kilometre, in euro, as the employer's policy sets it."},"amount":{"type":["string","number"],"description":"Amount for the trip."},"vehicle_type":{"type":"string","description":"Type of vehicle used."},"vehicle_plate":{"type":"string","description":"Plate of the vehicle used."}},"required":["date","origin","destination","purpose","distance_km","rate_eur_per_km","amount"]}},"totals":{"type":"object","description":"Totals, as typed.","additionalProperties":false,"properties":{"expenses":{"type":["string","number"],"description":"Total of the expenses."},"mileage":{"type":["string","number"],"description":"Total of the mileage amounts."},"grand":{"type":["string","number"],"description":"Grand total."},"advance":{"type":["string","number"],"description":"Advance received."},"net":{"type":["string","number"],"description":"Net amount to reimburse."}},"required":["expenses","mileage","grand","advance","net"]},"declaration_confirmed":{"type":"boolean","description":"True if the claimant makes the declaration."},"approval":{"type":"object","description":"Approval.","additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the approver."},"role":{"type":"string","description":"Role of the approver."},"date":{"type":"string","description":"Date of the approval.","format":"date"}}}}}