Table of Contents |
---|
...
Meer informatie over de types aansluitingen op de bouwsteen Aanvraagformulieren leest u hier: https://vlaamseoverheid.atlassian.net/l/cp/0M5wkCN2
Met vragen of feedback bij een bestaande koppeling kunt u terecht bij de servicedesk: https://www.vlaanderen.be/servicedesk/ik
...
Info |
---|
Om een consistente gebruikerservaring te bieden, verwachten we dat de formulieren die we embedden in Mijn Burgerprofiel, zoveel mogelijk de look en feel van Mijn Burgerprofiel benaderen. |
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "_links": { "self": { "href": "https://dienstenleverancier.be/api/v1/forms?limit=10&offset=0" }, "first": { "href": "https://dienstenleverancier.be/api/v1/forms?limit=10&offset=0" }, "next": { "href": "https://dienstenleverancier.be/api/v1/forms?limit=10&offset=10" }, "last": { "href": "https://dienstenleverancier.be/api/v1/forms?limit=10&offset=30" } }, "_pageMetadata": { "offset": 0, "size": 10, "totalItems": 35 }, "_embedded": { "items": [ { "_links": { "embed": { "href": "https://uw-eloket-cname.formulieren.burgerprofiel.be/93a4b91a-93f4-4cb2-bdc5-14bc53762cef?token={TEMP_SSO_TOKEN}", "templated": true }, "fallback": { "href": "https://uw-eloket-cname.formulieren.burgerprofiel.be/93a4b91a-93f4-4cb2-bdc5-14bc53762cef" }, "ssoTokenRegistrationApi": { "href": "https://uw-eloket-cname.formulieren.burgerprofiel.be/api/v1/temp-sso-token" } }, "sso": { "audience": "93a4b91a-93f4-4cb2-bdc5-14bc53762cef" }, "id": "d898fa60-e76f-44bb-89bd-9a468dab2319", "productId": "697" }, { "_links": { "embed": { "href": "https://formulieren.loket.vlaanderen.be/8350d7ed-ae18-4525-ac2c-abaa49656e3c?token={TEMP_SSO_TOKEN}" "templated": true }, "fallback": { "href": "https://formulieren.loket.vlaanderen.be/8350d7ed-ae18-4525-ac2c-abaa49656e3c" }, "thirdPartyCookieApi": { "href": "https://formulieren.loket.vlaanderen.be/api/v1/third_party_cookies" }, "ssoTokenRegistrationApi": { "href": "https://formulieren.loket.vlaanderen.be/api/v1/temp-sso-token" } }, "sso": { "audience": "d9da076d-3069-481c-9fa7-783ccb84ad61" }, "id": "8350d7ed-ae18-4525-ac2c-abaa49656e3c", "productId": "1390", "nisCodesnisCode": [ "23096", "23038", "23081" ] }, ... ] } } |
Het bovenstaande codevoorbeeld geeft de volgende 2 items terug:
Een standaard item op basis van het Once-Only-principe waarbij u de minimale parameters van het formulier opgeeft. De voorwaarde is een CNAME onder http://*.burgerprofiel.be, en de respectievelijke testdomeinen.
Een tweede item met extensies:
nisCodes
nisCode
om aan te geven voor welke lokale besturen welk lokaal bestuur het formulier van toepassing isproductId
voor het IPDC-nummerURLs die niet onder http://burgerprofiel.be vallen, hiervoor is een
thirdPartyCookieApi
verplicht (zie Aanvraagformulieren Aanvraagmodule - Third-party cookies)
Info |
---|
Once-Only-principle: minimale input voor een maximaal hergebruik Door het gebruik van IPDC en once-only principes streven we maximaal naar eenvoudige en eenduidige configuraties die de gebruiker een consistente ervaring geven doorheen het platform. De minimaal verpichte velden zijn hieronder aangegeven met * |
Key | Beschrijving | ||||
---|---|---|---|---|---|
| De link naar het fomulier dat geëmbed wordt in Mijn Burgerprofiel. Conform JSON-HAL kan dit een templated link zijn. Indien het formulier SSO verwacht (zie hieronder), dan kan in de URI template query expansion gedaan worden van
| ||||
| De link naar een formulier dat een gebruiker kan openklikken wanneer het formulier niet kan worden geëmbed, bijv. door browser-incompatibiliteit.
| ||||
| Alleen nodig als de formulieren worden aangeboden via een third-party domein, niet indien onder een CNAME van Voor meer details, zie https://vlaamseoverheid.atlassian.net/wiki/spaces/IKPubliek/pages/6180832603/ |
Aanvraagmodule+-+Third-party+cookies#Alternatieve-oplossing:-Third-party-cookie-API-endpoint | |
| Verplicht voor formulieren die een aangemelde context vereisen (samen met Geeft aan op welk endpoint de aangemelde context van MBP overgedragen kan worden. Voor meer details, zie |
| Verplicht wanneer Geeft aan voor welke doelgroep of “audience” (ACM Client-ID) de token exchange moet gebeuren wanneer de burger het formulier opent.
| ||
| Het IPDC- |
nisCodes
| Voor formulieren die voor |
een lokale |
bestuur beschikbaar |
is.
Bijv.
|
|
|
Info |
---|
|
Query parameters
Parameter | Beschrijving |
---|---|
|
productId
1 of meerdere IPDC-productcodes
Info |
---|
Bij meerdere productcodes wordt de parameter meerdere keren herhaald: |
nisCode
1 of meerdere niscodes
Info |
---|
Bij meerdere niscodes wordt de parameter meerdere keren herhaald: |
Als de niscode niet wordt meegegeven, worden alleen de Vlaamse dienstverlening(en) teruggegeven.
Wordt de niscode wel meegegeven, dan worden zowel de Vlaamse als de lokale dienstverleningen, die voldoen aan de niscode-voorschriften, teruggegeven.
...
...
breakoutMode | full-width |
---|
...
GET /api/v1/forms-submissions (optioneel)
Code Block | ||
---|---|---|
| ||
{ "_links": { "self": { "href": "https://dienstenleverancier.be/api/v1/form-submissions?limit=10&offset=0" }, "first": { "href": "https://dienstenleverancier.be/api/v1/form-submissions?limit=10&offset=0" }, "next": { "href": "https://dienstenleverancier.be/api/v1/form-submissions?limit=10&offset=10" }, "selflast": { "href": "https://fl-test-eportal.skryv.comdienstenleverancier.be/api/v1/form-submissions?limit=10&offset=020" }, }, "first_pageMetadata": { "href "offset": "https://fl-test-eportal.skryv.com/api/v1/form-submissions?limit=10&offset=0" }, "nextsize": {10, "hreftotalItems": "https://fl-test-eportal.skryv.com/api/v1/form-submissions?limit=10&offset=10" }, 26 }, "_embedded": { "lastitems": [ { "href": "https://fl-test-eportal.skryv.com/api/v1/form-submissions?limit=10&offset=20" }, "_links": { }, "_pageMetadata": { "offsetembed": 0, "size": 10, "totalItems": 26 }, "_embedded": { { "href": "https://uw-eloket-cname.formulieren.burgerprofiel.be/submission/cff3bebb-dd1c-4937-b335-f6c8c9543cb6?token={TEMP_SSO_TOKEN}", "templated": true }, "items": [ "fallback": { "_links": {"href": "https://uw-eloket-cname.formulieren.burgerprofiel.be/submission/cff3bebb-dd1c-4937-b335-f6c8c9543cb6 }, "embedssoTokenRegistrationApi": { "href": "https://fluw-testeloket-eportalcname.formulieren.skryvburgerprofiel.combe/api/#v1/80a5af1ftemp-8786-4124-9d60-652e53428a8d" },sso-token" } }, "fallbacksso": { "href "audience": "https://fl-test-eportal.skryv.com/#/80a5af1f-8786-4124-9d60-652e53428a8d" },93a4b91a-93f4-4cb2-bdc5-14bc53762cef" }, "form": { "href "id": "https://fl-test-eportal.skryv.com/#/dossier-info/8350d7ed-ae18-4525-ac2c-abaa49656e3c" },cff3bebb-dd1c-4937-b335-f6c8c9543cb6", "productId": "697" "thirdPartyCookieApi": { "hrefstatus": "https://fl-test-eportal.skryv.com/api/v1/third_party_cookies" } }in-progress", "idcreated": "80a5af1f2020-8786-4124-9d60-652e53428a8d08-11T08:34:55.451Z", "formIdupdated": "8350d7ed2020-ae18-4525-ac2c-abaa49656e3c",08-19T10:58:12.379Z" "status": "in-progress"}, { "provider": { "_links": { "id": "OVO000106", "embed": { "name": "Wonen-Vlaanderen", }, "created": "2020-08-11T08:34:55.451Z", "updated": "2020-08-19T10:58:12.379Z" }, ... ] } } |
Het bovenstaande codevoorbeeld geeft items terug met deze extra extensies:
status
: in progress zodat het formulier tussentijds kan bewaard wordenprovider id
enname
: de OVO-code en de naam van de bevoegde overheid
Headers
De X-Correlation-ID
en X-Request-ID
headers zullen aanwezig zijn op de aanvragen en we verwachten dat de API-implementatie er rekening mee houdt in de responses.
Authenticatie
...
"href": "https://formulieren.loket.vlaanderen.be/submission/80a5af1f-8786-4124-9d60-652e53428a8d?token={TEMP_SSO_TOKEN}", "templated": true },
"fallback": { "href": "https://formulieren.loket.vlaanderen.be/submission/80a5af1f-8786-4124-9d60-652e53428a8d" },
"thirdPartyCookieApi": { "href": "https://formulieren.loket.vlaanderen.be/api/v1/third_party_cookies" },
"ssoTokenRegistrationApi": { "href": "https://formulieren.loket.vlaanderen.be/api/v1/temp-sso-token" }
},
"sso": {
"audience": "d9da076d-3069-481c-9fa7-783ccb84ad61"
},
"id": "80a5af1f-8786-4124-9d60-652e53428a8d",
"productId": "1390"
"nisCode": "23096",
"status": "in-progress",
"created": "2020-08-11T08:34:55.451Z",
"updated": "2020-08-19T10:58:12.379Z"
},
...
]
}
} |
Het bovenstaande codevoorbeeld geeft items terug met deze extra extensies:
status
:in-progress
zodat het formulier tussentijds kan bewaard wordencreated
: Datum wanneer de instantie van het formulier aangemaakt isupdated
: Datum wanneer de laatste wijziging is gebeurd aan de instantie van het formulier
Query parameters
Parameter | Beschrijving |
---|---|
|
Headers
De X-Correlation-ID
en X-Request-ID
headers zullen aanwezig zijn op de aanvragen en we verwachten dat de API-implementatie er rekening mee houdt in de responses.
Authenticatie
We maken onderscheid tussen de forms API en de form submissions API.
De forms API is verondersteld onafhankelijk te zijn van de ingelogde burger. Deze API moet ook aangeroepen worden in een niet-aangemaalde MBP sessie. Voor dit endpoint worden daar volgende authenticatie middelen ondersteund:
anonymous (publiek)
OAuth2 met client-credentials-grant (meer informatie op https://authenticatie.vlaanderen.be/docs/beveiligen-van-api/oauth-rest/rest-server2server/)
mTLS
De form submissions API moet aangeroepen worden in de context van een aangemelde burger, hiervoor zie https://vlaamseoverheid.atlassian.net/wiki/spaces/IKPubliek/pages/2076934790/Algemene+REST+API-specificaties#ACM-OAuth-met-burgeridentificatie
Voor Front-end SSO, zie Aanvraagformulieren Aanvraagmodule - Authenticatie via Single Sign-on (SSO)
Afhandeling foutberichten
...
Een aanvraag starten
Inc drawio | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Om de integratie met Mijn Burgerprofiel correct te laten verlopen, moet de embed-pagina bepaalde gebeurtenissen melden aan Mijn Burgerprofiel. Momenteel gebeurt dit aan de hand van het window.postMessage op het parent-window (= Mijn Burgerprofiel). Die gebeurtenissen worden opgevangen om de gebeurtenissen - zoals een formulier indienen - correct te verwerken.
Inc drawio | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Info |
---|
Het is aangeraden een informatieve pagina te tonen waarbij de gebruiker expliciet de aanvraag moet te starten. Die actie kan dan de |
Zodra dit event getriggerd is in de context van een formulier, kan de gebruiker het zijpaneel in Mijn Burgerprofiel niet sluiten zonder een waarschuwing te krijgen.
...
Note |
---|
Het is niet de bedoeling dat dit event direct bij het laden van de pagina verstuurd wordt. |
FORM_FINISHED event
Wanneer de gebruiker de aanvraag wil onderbreken zonder die ze in te dienen, of wanneer alle stappen in het formulier doorlopen zijn zonder een dossier te starten, kan het formulier een knop tonen om de aanvraag te sluiten.
...
Info |
---|
Idealiter is het dossier ook direct zichtbaar als ingediende aanvraag. Dit is echter afhankelijk van de flow die bij het loket gevolgd wordt voor om de integratie met de dossierstatusinformatiedossierstatusinformatie (DOSIS) te integreren. |
Code Block | ||
---|---|---|
| ||
window.parent.postMessage({ "action": "FORM_SUBMITTED", "submissionTitle": "Uw aanvraag is ingediend", "submissionMessage": "Loket X verwerkt nu uw aanvraag. U ontvangt een melding wanneer ze in behandeling is.", "dosis": "urn://loket.burgerprofiel.be/aanvraag/86-XIOSJP-91352" }) |
...