{"openapi":"3.1.0","info":{"title":"Rijkscatering Monitor","description":"Werkende demonstratie met uitsluitend synthetische Rijkscatering-gegevens. Productieacceptatie volgt een afzonderlijke Rijks- en LVVN-poort.","version":"1.0.0-demo"},"paths":{"/":{"get":{"summary":"Overview","operationId":"overview__get","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"2026-Q2","title":"Period"}},{"name":"contract_type","in":"query","required":false,"schema":{"type":"string","default":"Alle","title":"Contract Type"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/aanleveren":{"get":{"summary":"Supplier Entry","operationId":"supplier_entry_aanleveren_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/aanleveren/valideren":{"post":{"summary":"Validate Entry","operationId":"validate_entry_aanleveren_valideren_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_validate_entry_aanleveren_valideren_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/aanleveren/indienen":{"post":{"summary":"Submit Entry","operationId":"submit_entry_aanleveren_indienen_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_submit_entry_aanleveren_indienen_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/importeren":{"get":{"summary":"Import Mapping","operationId":"import_mapping_importeren_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/importeren/profiel":{"post":{"summary":"Save Import Profile","operationId":"save_import_profile_importeren_profiel_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_save_import_profile_importeren_profiel_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/importeren/verwerken":{"post":{"summary":"Process Import","operationId":"process_import_importeren_verwerken_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_process_import_importeren_verwerken_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/validation-report.csv":{"get":{"summary":"Export Validation Report","operationId":"export_validation_report_export_validation_report_csv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/werkvoorraad":{"get":{"summary":"Work Queue","operationId":"work_queue_werkvoorraad_get","parameters":[{"name":"submission_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Submission Id"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/leveringen/{submission_id}":{"get":{"summary":"Submission Detail","operationId":"submission_detail_leveringen__submission_id__get","parameters":[{"name":"submission_id","in":"path","required":true,"schema":{"type":"integer","title":"Submission Id"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/leveringen/{submission_id}/actie":{"post":{"summary":"Submission Action","operationId":"submission_action_leveringen__submission_id__actie_post","parameters":[{"name":"submission_id","in":"path","required":true,"schema":{"type":"integer","title":"Submission Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_submission_action_leveringen__submission_id__actie_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/bevindingen/{finding_id}/herstellen":{"post":{"summary":"Finding Resolve","operationId":"finding_resolve_bevindingen__finding_id__herstellen_post","parameters":[{"name":"finding_id","in":"path","required":true,"schema":{"type":"integer","title":"Finding Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_finding_resolve_bevindingen__finding_id__herstellen_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyse/herkomst/{metric}":{"get":{"summary":"Provenance","operationId":"provenance_analyse_herkomst__metric__get","parameters":[{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyse/locaties":{"get":{"summary":"Location Matrix","operationId":"location_matrix_analyse_locaties_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analyse/toegankelijk":{"get":{"summary":"Accessible Analysis","operationId":"accessible_analysis_analyse_toegankelijk_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/kpis":{"get":{"summary":"Kpi Admin","operationId":"kpi_admin_beheer_kpis_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Kpi Create","operationId":"kpi_create_beheer_kpis_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_kpi_create_beheer_kpis_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/contracten":{"get":{"summary":"Contract Admin","operationId":"contract_admin_beheer_contracten_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Contract Create","operationId":"contract_create_beheer_contracten_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_contract_create_beheer_contracten_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/leveranciers":{"post":{"summary":"Supplier Create","operationId":"supplier_create_beheer_leveranciers_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_supplier_create_beheer_leveranciers_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/locaties":{"post":{"summary":"Location Create","operationId":"location_create_beheer_locaties_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_location_create_beheer_locaties_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/contracten/{contract_id}/wijzigen":{"post":{"summary":"Contract Update","operationId":"contract_update_beheer_contracten__contract_id__wijzigen_post","parameters":[{"name":"contract_id","in":"path","required":true,"schema":{"type":"integer","title":"Contract Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_contract_update_beheer_contracten__contract_id__wijzigen_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/toegang":{"get":{"summary":"Access Admin","operationId":"access_admin_beheer_toegang_get","parameters":[{"name":"test_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Role"}},{"name":"test_contract","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Test Contract"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Access Create","operationId":"access_create_beheer_toegang_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_access_create_beheer_toegang_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/beheer/omgeving":{"get":{"summary":"Environment Admin","operationId":"environment_admin_beheer_omgeving_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overdracht":{"get":{"summary":"Handover","operationId":"handover_overdracht_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/accepted.csv":{"get":{"summary":"Export Csv","operationId":"export_csv_export_accepted_csv_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/accepted.json":{"get":{"summary":"Export Json","operationId":"export_json_export_accepted_json_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/handover.zip":{"get":{"summary":"Export Handover","operationId":"export_handover_export_handover_zip_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pilot":{"get":{"summary":"Pilot","operationId":"pilot_pilot_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hulp/{help_role}":{"get":{"summary":"Help Page","operationId":"help_page_hulp__help_role__get","parameters":[{"name":"help_role","in":"path","required":true,"schema":{"type":"string","title":"Help Role"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"tags":["api"],"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/accepted-records":{"get":{"tags":["api"],"summary":"Records","operationId":"records_api_v1_accepted_records_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Records Api V1 Accepted Records Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ontvangsten":{"post":{"tags":["api"],"summary":"Receive","operationId":"receive_api_v1_ontvangsten_post","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"rijksanalist","title":"Role"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakePayload"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Receive Api V1 Ontvangsten Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Body_access_create_beheer_toegang_post":{"properties":{"display_name":{"type":"string","title":"Display Name"},"role_key_new":{"type":"string","title":"Role Key New"},"contract_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Contract Id"},"can_submit":{"type":"boolean","title":"Can Submit","default":false},"can_accept":{"type":"boolean","title":"Can Accept","default":false},"can_configure":{"type":"boolean","title":"Can Configure","default":false},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["display_name","role_key_new","role_key"],"title":"Body_access_create_beheer_toegang_post"},"Body_contract_create_beheer_contracten_post":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"contract_type":{"type":"string","title":"Contract Type"},"supplier_id":{"type":"integer","title":"Supplier Id"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"type":"string","format":"date","title":"End Date"},"cadence":{"type":"string","title":"Cadence"},"kpi_pack":{"type":"string","title":"Kpi Pack"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["name","code","contract_type","supplier_id","start_date","end_date","cadence","kpi_pack","role_key"],"title":"Body_contract_create_beheer_contracten_post"},"Body_contract_update_beheer_contracten__contract_id__wijzigen_post":{"properties":{"cadence":{"type":"string","title":"Cadence"},"status":{"type":"string","title":"Status"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["cadence","status","role_key"],"title":"Body_contract_update_beheer_contracten__contract_id__wijzigen_post"},"Body_finding_resolve_bevindingen__finding_id__herstellen_post":{"properties":{"resolution":{"type":"string","title":"Resolution"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["resolution","role_key"],"title":"Body_finding_resolve_bevindingen__finding_id__herstellen_post"},"Body_kpi_create_beheer_kpis_post":{"properties":{"label":{"type":"string","title":"Label"},"code":{"type":"string","title":"Code"},"contract_type":{"type":"string","title":"Contract Type"},"unit":{"type":"string","title":"Unit"},"effective_from":{"type":"string","title":"Effective From"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["label","code","contract_type","unit","effective_from","role_key"],"title":"Body_kpi_create_beheer_kpis_post"},"Body_location_create_beheer_locaties_post":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"region":{"type":"string","title":"Region"},"contract_id":{"type":"integer","title":"Contract Id"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["name","code","region","contract_id","role_key"],"title":"Body_location_create_beheer_locaties_post"},"Body_process_import_importeren_verwerken_post":{"properties":{"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["role_key"],"title":"Body_process_import_importeren_verwerken_post"},"Body_save_import_profile_importeren_profiel_post":{"properties":{"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["role_key"],"title":"Body_save_import_profile_importeren_profiel_post"},"Body_submission_action_leveringen__submission_id__actie_post":{"properties":{"action":{"type":"string","title":"Action"},"reason":{"type":"string","title":"Reason","default":""},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["action","role_key"],"title":"Body_submission_action_leveringen__submission_id__actie_post"},"Body_submit_entry_aanleveren_indienen_post":{"properties":{"contract_id":{"type":"integer","title":"Contract Id"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["contract_id","role_key"],"title":"Body_submit_entry_aanleveren_indienen_post"},"Body_supplier_create_beheer_leveranciers_post":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"role_key":{"type":"string","title":"Role Key"}},"type":"object","required":["name","code","role_key"],"title":"Body_supplier_create_beheer_leveranciers_post"},"Body_validate_entry_aanleveren_valideren_post":{"properties":{"contract_id":{"type":"integer","title":"Contract Id"},"co2":{"type":"number","title":"Co2"},"weight":{"type":"number","title":"Weight"},"plant":{"type":"number","title":"Plant"},"protein":{"type":"number","title":"Protein"},"food_waste":{"type":"number","title":"Food Waste","default":1260},"social_hours":{"type":"number","title":"Social Hours","default":12540},"total_hours":{"type":"number","title":"Total Hours","default":15000},"role_key":{"type":"string","title":"Role Key"},"intent":{"type":"string","title":"Intent","default":"validate"}},"type":"object","required":["contract_id","co2","weight","plant","protein","role_key"],"title":"Body_validate_entry_aanleveren_valideren_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntakePayload":{"properties":{"contract_id":{"type":"integer","title":"Contract Id"},"location_id":{"type":"integer","title":"Location Id"},"period":{"type":"string","pattern":"^20\\d{2}-Q[1-4]$","title":"Period"},"source_reference":{"type":"string","maxLength":80,"minLength":3,"title":"Source Reference"},"channel":{"type":"string","title":"Channel","default":"api"}},"type":"object","required":["contract_id","location_id","period","source_reference"],"title":"IntakePayload"},"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"}}}}