{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"be.reports.vat_reconciliation","type":"object","additionalProperties":false,"required":["letter","entity","period","vat_rate_rows","vat_box_rows","totals"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["date","reference"],"properties":{"date":{"type":"string","format":"date"},"reference":{"type":"string","minLength":1}}},"entity":{"type":"object","additionalProperties":false,"required":["name","bce","vat"],"properties":{"name":{"type":"string","minLength":1},"bce":{"type":"string","pattern":"^0[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"vat":{"type":"string","pattern":"^BE0[0-9]{9}$"},"address":{"type":"string"},"city":{"type":"string"}}},"period":{"type":"object","additionalProperties":false,"required":["start","end","declaration_type"],"properties":{"start":{"type":"string","format":"date"},"end":{"type":"string","format":"date"},"declaration_type":{"type":"string","enum":["monthly","quarterly"]}}},"vat_rate_rows":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["vat_rate_pct","journal_base","journal_vat","return_base","return_vat","base_diff","vat_diff"],"properties":{"vat_rate_pct":{"type":"number","minimum":0,"maximum":100},"journal_base":{"type":"number","minimum":0},"journal_vat":{"type":"number","minimum":0},"return_base":{"type":"number","minimum":0},"return_vat":{"type":"number","minimum":0},"base_diff":{"type":"number"},"vat_diff":{"type":"number"}}}},"vat_box_rows":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["box_number","box_description","journal_amount","return_amount","difference"],"properties":{"box_number":{"type":"string","pattern":"^[0-9]{2}$"},"box_description":{"type":"string","minLength":1},"journal_amount":{"type":"number"},"return_amount":{"type":"number"},"difference":{"type":"number"}}}},"totals":{"type":"object","additionalProperties":false,"required":["journal_vat_due","journal_vat_deductible","journal_balance","return_vat_due","return_vat_deductible","return_balance","balance_difference"],"properties":{"journal_vat_due":{"type":"number"},"journal_vat_deductible":{"type":"number"},"journal_balance":{"type":"number"},"return_vat_due":{"type":"number"},"return_vat_deductible":{"type":"number"},"return_balance":{"type":"number"},"balance_difference":{"type":"number"}}},"reconciliation_status":{"type":"string","enum":["reconciled","discrepancies"]},"notes":{"type":"string"}}}