Subsidies
Subsidies beheert subsidieregelingen, aanvragen, beschikkingen en betaaltermijnen. De module legt het recht, de beoordeling en de vrijgave voor betaling vast, maar gebruikt Crediteuren en Betalingen voor de daadwerkelijke betaalverwerking.
Wat kun je met Subsidies?
Met Subsidies kun je:
- subsidieregelingen beheren, publiceren en sluiten voor nieuwe aanvragen;
- aanvragen registreren, indienen, beoordelen, goedkeuren of afwijzen;
- beschikkingen vastleggen voor goedgekeurde aanvragen;
- betaaltermijnen plannen, vrijgeven en omzetten naar Payables Payment Requests;
- betaalstatussen volgen vanuit Crediteuren en Betalingen;
- subsidie-events en generieke audittrails raadplegen;
- subsidiedossiers, taken en timers gebruiken voor de eerste workflowfundering.
Belangrijkste schermen
| Scherm | Route | Doel |
|---|---|---|
| Dashboard | /subsidies/dashboard | Programma-, aanvraag-, beschikking- en betaalstatussen volgen |
| Regelingen | /subsidies/programs | Subsidieregelingen beheren en publiceren |
| Aanvragen | /subsidies/applications | Subsidieaanvragen registreren en beoordelen |
| Beschikkingen | /subsidies/awards | Toekenningen vastleggen en beheren |
| Betaaltermijnen | /subsidies/payment-terms | Termijnen plannen, vrijgeven en naar Payables doorzetten |
Procesoverzicht
flowchart LR
Program[Regeling] --> Publish[Publiceren]
Publish --> Application[Aanvraag]
Application --> Submit[Indienen]
Submit --> Review[Beoordelen]
Review --> Decision{Besluit}
Decision -->|Goedkeuren| Award[Beschikking]
Decision -->|Afwijzen| Rejected[Afgewezen]
Award --> Term[Betaaltermijn]
Term --> Release[Vrijgeven]
Release --> Payables[Payables Payment Request]
Payables --> Payments[Betalingen]Regelingen
Een subsidieregeling bepaalt binnen welke periode aanvragen kunnen worden geregistreerd en welk budget beschikbaar is. De regeling bevat ook betaalinrichting voor de handoff naar Payables, zoals de standaard rekeningcombinatie en optioneel een eigen bankrekening.
| Status | Betekenis |
|---|---|
DRAFT | Conceptregeling, nog niet open voor aanvragen |
ACTIVE | Gepubliceerd en open voor aanvragen |
SUSPENDED | Tijdelijk niet beschikbaar |
CLOSED | Gesloten voor nieuwe aanvragen |
Budgetverlagingen mogen niet onder actieve toekenningen uitkomen. De budgetvaluta blijft gelijk zolang actieve toekenningen bestaan.
Aanvragen
Aanvragen leggen de aanvrager, leverancier, leverancierssite, bankrekening, bedrag, valuta en beoordelingsgegevens vast. De huidige runtime gebruikt leveranciers- en bankrekeninggegevens uit Crediteuren, zodat betaalverzoeken later op bestaande stamdata aansluiten.
| Status | Betekenis |
|---|---|
DRAFT | Concept, inhoudelijk wijzigbaar |
SUBMITTED | Ingediend voor beoordeling |
UNDER_REVIEW | In beoordeling |
APPROVED | Goedgekeurd voor beschikking |
REJECTED | Afgewezen |
WITHDRAWN | Ingetrokken |
Alleen conceptaanvragen kunnen inhoudelijk worden gewijzigd. Goedkeuring vereist een bedrag dat niet boven het aangevraagde bedrag ligt en een besluitdatum die niet voor de aanvraagdatum ligt.
Beschikkingen
Een beschikking legt het toegekende bedrag, de valuta, datum en voorwaarden vast voor een goedgekeurde aanvraag. Per aanvraag mag er maar één actuele beschikking actief zijn.
| Status | Betekenis |
|---|---|
DRAFT | Conceptbeschikking |
ACTIVE | Actuele beschikking waarop betaaltermijnen kunnen worden gepland |
REVISED | Vervangen door een latere beschikking |
CANCELLED | Geannuleerd |
Het toegekende bedrag mag niet boven het goedgekeurde aanvraagbedrag liggen. Betaaltermijnen mogen samen niet boven de beschikking uitkomen.
Betaaltermijnen
Betaaltermijnen plannen wanneer een deel van de beschikking betaald mag worden. Na vrijgave kan de module een idempotent Payables Payment Request aanmaken met source_system = SBS.
| Status | Betekenis |
|---|---|
PLANNED | Gepland maar nog niet vrijgegeven |
READY_FOR_PAYMENT | Vrijgegeven voor Payables |
PAYMENT_REQUEST_CREATED | Payables Payment Request is aangemaakt |
PAID | Downstream betaling is betaald |
BLOCKED | Geblokkeerd door ontbrekende of foutieve betaalinrichting |
CANCELLED | Geannuleerd |
De betaalstatus wordt afgeleid uit downstream Payables- en Payments-informatie. De module lost Payables-holds niet zelf op, maar toont de downstream blokkade zodat de gebruiker de juiste bron kan herstellen.
Payables-handoff
Subsidies maakt geen eigen betaalengine. Bij een vrijgegeven termijn roept de module de bestaande Payables Payment Request-flow aan. De handoff gebruikt:
- de geselecteerde leveranciersbankrekening op de aanvraag;
- de standaard rekeningcombinatie van de regeling;
- de optionele eigen bankrekening van de regeling;
- een stabiele idempotency key op basis van de subsidiebetalingstermijn;
- een korte betaalreferentie die geschikt is voor de betaalverwerking.
Als dezelfde idempotency key met dezelfde payload opnieuw wordt aangeboden, wordt het bestaande betaalverzoek gebruikt. Een gewijzigde payload met dezelfde key wordt als conflict behandeld.
Dossiers, taken en timers
Slice 4 levert de eerste workflowfundering. De runtime bevat nu subsidiedossiers, workflowtabellen, case tasks en case timers. Deze laag is bedoeld als bounded workflow capability voor SBS, niet als generieke BPMN-engine.
Beschikbare interne API's:
| Endpoint | Gebruik |
|---|---|
GET /api/subsidies/cases | Subsidiedossiers lezen |
POST /api/subsidies/applications/{application_id}/case | Dossier openen voor een aanvraag |
GET /api/subsidies/cases/{case_id} | Dossierdetail lezen |
GET /api/subsidies/case-tasks | Dossiertaken lezen |
POST /api/subsidies/cases/{case_id}/tasks | Dossiertaak aanmaken |
POST /api/subsidies/case-tasks/{task_id}/complete | Dossiertaak afronden |
GET /api/subsidies/case-timers | Dossiertimers lezen |
POST /api/subsidies/cases/{case_id}/timers | Timer aanmaken |
POST /api/subsidies/case-timers/{timer_id}/cancel | Timer annuleren |
Timers zijn idempotent. Een timer heeft een stabiele idempotency_key; dezelfde key met andere payload geeft een 409 Conflict.
Audit en events
Subsidies legt acties op twee niveaus vast:
- domeinevents in
sbs_events, gebruikt voor dashboardgebeurtenissen en tijdlijnen; - generieke
audit_events, gebruikt voor object-audittrails in de bredere platform-audit.
Voor dossiers bevat de tijdlijn ook gekoppelde taak- en timerevents via case_id. De frontend gebruikt de generieke audit-API voor objecten zoals SbsProgram, SbsApplication, SbsAward en SbsPaymentTerm.
Rechten en toegang
| Recht | Gebruik |
|---|---|
subsidies.reporting.read | Dashboard en rapportage lezen |
subsidies.programs.read | Regelingen bekijken |
subsidies.programs.manage | Regelingen beheren |
subsidies.applications.read | Aanvragen bekijken |
subsidies.applications.create | Aanvragen en betaalrelatie-lookups gebruiken |
subsidies.applications.review | Aanvragen beoordelen |
subsidies.awards.read | Beschikkingen bekijken |
subsidies.awards.manage | Beschikkingen beheren |
subsidies.payment_terms.read | Betaaltermijnen bekijken |
subsidies.payment_terms.manage | Betaaltermijnen beheren en vrijgeven |
subsidies.cases.read | Subsidiedossiers bekijken |
subsidies.cases.manage | Subsidiedossiers openen en beheren |
subsidies.case_tasks.read | Dossiertaken bekijken |
subsidies.case_tasks.manage | Dossiertaken beheren |
subsidies.case_timers.read | Dossiertimers bekijken |
subsidies.case_timers.manage | Dossiertimers beheren |
API's
Alle Subsidies-endpoints zijn interne, user-authenticated business API's onder /api/subsidies. Ze horen niet onder /api/v1, omdat die prefix voor externe Public API-contracten is gereserveerd.
| Endpointgroep | Gebruik |
|---|---|
/api/subsidies/programs | Regelingen |
/api/subsidies/applications | Aanvragen |
/api/subsidies/awards | Beschikkingen |
/api/subsidies/payment-terms | Betaaltermijnen |
/api/subsidies/cases | Dossiers |
/api/subsidies/case-tasks | Dossiertaken |
/api/subsidies/case-timers | Dossiertimers |
/api/subsidies/reporting/* | Dashboardrapportage |
/api/subsidies/events | Domeinevents en tijdlijnen |
Status van de implementatie
Compleet in de huidige baseline:
- feature seed en VitePress featurepagina;
- MVP-tabellen voor regelingen, aanvragen, beschikkingen, betaaltermijnen en events;
- runtime API's voor de MVP-lifecycle;
- frontendpagina's, dashboardrapportage, betaalstatus-tracking en demo seed data;
- eerste case/workflow foundation met dossiers, taken en timers.
Nog later te implementeren:
- automatische binding van workflowdefinities aan SBS-proces 01;
- happy-path proces 02-transities;
- besluitversies, approval routing en commitmentmodel;
- accountability, settlement, correcties, terugvorderingen en afsluiting.
Praktische checklist
- Controleer dat de regeling
ACTIVEis voordat aanvragen worden ingediend. - Leg standaard rekeningcombinatie en betaalrekening vast voordat betaaltermijnen worden vrijgegeven.
- Gebruik alleen betaalbare leveranciersbankrekeningen uit Crediteuren.
- Controleer downstream Payables- en Payments-statussen voordat een termijn als afgerond wordt beschouwd.
- Gebruik audit en events bij vragen over beoordeling, beschikking of betaling.