Aanvraag
1. Aanvraag aanmaken
Na het opstellen van een berekening kan deze gebruikt worden om tot een aanvraag te komen. De aanvraag fungeert uiteindelijk als het voorstel welke aan de consument wordt voorgelegd. Bij het aanmelden van een nieuwe consument dienen de persoonsgegevens opgevoerd te worden op basis van het aanvraagwebapi:ParticuliereAanvrager
of aanvraagwebapi:ZakelijkeAanvrager
model. Alvorens deze gebruikt worden in de aanvraag is het echter raadzaam om deze eerst te valideren.
Afhankelijk van het marktsegment
( zakelijk of particulier ) dient de voordeelpakketberekening:Berekening
regulier of zakelijk aangemaakt te worden. Reden hiertoe is dat een zakelijke aanvraag additionele velden vereist zoals bijvoorbeeld het KVK nummer.
/aanmaken/aanvragen
/aanmaken/aanvragen/zakelijk
> NieuweAanvraag:sample > NieuweZakelijkeAanvraag:sample > Aanvrager > Adres > Naam
2. Aanvraag ophalen
Na het opstellen van de aanvraag wordt een aanvraagId
geretourneerd. Hiermee kan de volledige aanvraag opgehaald worden via de API.
/aanvragen/{aanvraagId}
Zodra de aanvraag succesvol is aangemaakt veranderd de status in de
aanvraagwebapi:Aanvraag
van Nieuw naar Concept. Het kan voorkomen dat direct na het aanmaken van de aanvraag deze niet direct beschikbaar is en (nog) een 404 retourneert bij het ophalen, in dat geval kan het zijn dat de API deze nog aan het verwerken is. Er moet altijd worden gewacht op status Concept voordat er meer informatie over de aanvraag kan worden ingestuurd.
- In productieomgeving bedraagt de verwerkingstijd minder dan een seconde ( < 1 sec ).
- In de sandbox omgeving kan de verwerkingstijd langer bedragen wanneer deze voor een langere periode inactief is geweest.
3. Aanvullen gegevens aanvrager
Wanneer nodig kunnen de gegevens van de aanvrager naderhand nog aangepast worden middels aanvraagwebapi:/aanvragen/{aanvraagId}/aanvrager
.
/aanvragen/{aanvraagId}/aanvrager
4. Aanvullen gegevens bestuurder
Op basis van de profielen in de aanvraagwebapi:Aanvraag
kan het zijn dat er Bestuurders
vereist zijn. Indien dit van toepassing is worden de Bestuurders
aangemaakt in de aanvraagwebapi:Aanvraag
en geretourneerd. Deze dienen vervolgens aangevuld te worden met aanvullende persoonsgegevens middels een PUT
request.
/aanvragen/{aanvraagId}/bestuurders/{bestuurderId}
> BijwerkenBestuurder > Naam
5. Acceptatievragen
Acceptatievragen kunnen op twee niveaus plaats vinden. Om de aanvraag te kunnen indienen moeten alle acceptatievragen ingevuld worden, elk niveau geeft in het datamodel aan welke acceptatievragen vereist zijn.
Acceptatievragen - aanvraag
Het eerste niveau is in het aanvraagwebapi:Aanvraag
object. Hier geven de attributen JuridischGeschilGehadAcceptatievraagStellen
, JuridischGeschilVerwachtAcceptatievraagStellen
, UitkeringAcceptatievraagStellen
en Acceptatievragen
aan of de vragen ingevuld dienen te worden en zo ja welke vragen precies.
/aanvragen/{aanvraagId}/acceptatievragen
> Acceptatievragen
Acceptatievragen - product
Aanvullend kan het zijn dat een product acceptatievragen vereist. Afhankelijk van het type product zijn deze elders in het aanvraagwebapi:Aanvraag
model terug te vinden. Elk model bevat voor de verschillende vragen een attribuut <acceptatievraag>VraagStellen
of <acceptatievraag>Vereist
welke aangeeft of de acceptatievragen vereist zijn. Indien vereist dienen alle acceptatievragen uit het corresponderende model ingevuld te worden.
Product | Acceptatievragen |
---|---|
Aanhangwagenverzekering | aanvraagwebapi:AanhangwagenAcceptatievragen |
Bestelautoverzekering | aanvraagwebapi:VoertuigAcceptatievragen |
Bromfietsverzekering | aanvraagwebapi:VoertuigAcceptatievragen |
Caravanverzekering | aanvraagwebapi:CaravanAcceptatievragen |
Fietsverzekering | aanvraagwebapi:FietsAcceptatievragen |
Inboedelverzekering | aanvraagwebapi:WoonhuisAcceptatievragen |
Kampeerautoverzekering | aanvraagwebapi:VoertuigAcceptatievragen |
Motorfietsverzekering | aanvraagwebapi:VoertuigAcceptatievragen |
Personenautoverzekering | aanvraagwebapi:VoertuigAcceptatievragen |
Rechtsbijstandsverzekering | aanvraagwebapi:InvullenAcceptatievragen |
Woonhuisverzekering | aanvraagwebapi:WoonhuisAcceptatievragen |
Let op: Conform het normenkader mogen slot- en acceptatievragen niet vooraf ingevuld zijn.
6. Slotvragen
Opvoeren
Vaak zijn er slotvragen vereist voor het indienen van de aanvraag. Per vraag wordt aangegeven of deze beantwoord moet worden. Dit wordt aangeduid met de volgende attributen binnen de Aanvraag: AanrakingJustitieSlotvraagStellen
, OntzeggingRijbevoegheidOfVerkeersmisdrijfSlotvraagStellen
, VerzekeringGeweigerdOpgezegdOfBijzVoorwaardenSlotvraagStellen
, HeeftSchadeverledenSlotvraagStellen
. Wanneer deze de waarde true
bevat dienen de slotvragen ingevuld te worden alvorens de aanvraag kan worden ingediend. De vereiste slotvragen zijn terug te vinden in het attribuut Slotvragen
.
/aanvragen/{aanvraagId}/slotvragen
> InvullenSlotvragen
Bijzonderheden
Let op: Wanneer
HeeftSchadeVerleden
metfalse
is beantwoord dient het attribuutSchadeverleden
niet meegestuurd te worden in de API call. Wanneer de waarde gelijk is aantrue
moet het attribuutSchadeverleden
meegeven worden.
Let op: De slotvraag
OntzeggingRijbevoegdheidOfVerkeersmisdrijf
is enkel van toepassing wanneer de aanvraag één of meer van de volgende producten bevat:personenauto
,motorfiets
,bromfiets
,bestelauto
ofkampeerauto
.
Let op: De slotvraag
AanrakingJustitie
heeft twee types subvragen. De oude variant is datRedenAanrakingJustitie
ingevuld wordt alsAanrakingJustitie
met true beantwoord is. De nieuwe variant is dat een lijstEerdereStrafbareFeiten
opgegeven wordt alsAanrakingJustitie
met true beantwoord is. In v7 en lager wordt de oude variant gebruikt. In v9 bestaat alleen de nieuwe variant nog. In v8 kun je ofwel de oude variant gebruiken ofwel de nieuwe variant. Beide varianten tegelijk is niet toegestaan.
Let op: Conform het normenkader mogen slot- en acceptatievragen niet vooraf ingevuld zijn.
7. Ondertekenen
Na het invullen van de slotvragen en acceptatievragen moet de aanvraag digitaal ondertekend worden door de consument (aanvrager) of de adviseur. De attributen AkkoordDigitalePolisVraagStellen
en AkkoordAanvraagVraagStellen
geven aan welke vragen beantwoord moeten worden. Het attribuut AanvragerIsOndertekenaar
geeft aan wie de ondertekening doet: de aanvrager zelf of de adviseur, namens de aanvrager.
/aanvragen/{aanvraagId}/ondertekening
> OndertekenenAanvraag
Let op: Vanuit Voogd & Voogd wordt bepaald of aanvragen vanuit de adviseur mogen worden ingediend; indien dit uitgeschakeld staat voor uw account geeft de API een foutmelding wanneer de aanvraag namens de adviseur is ondertekend. Mocht deze functionaliteit wenselijk zijn neem dan contact op met Voogd & Voogd.
Akkoordverklaring digitale verstrekking verzekeringskaarten
De klant dient expliciet akkoord te gaan met het feit dat de verzekeringskaarten digitaal beschikbaar zijn gesteld (volgens de wet moet dit namelijk op papier). Hiervoor dient de property AkkoordDigitaleVerzekeringskaarten
bij het ondertekenen van de aanvraag. Deze keuze dient daarmee terug te komen als een eigen opt-in/keuzeselectie op de laatste pagina van de applicatie, geschikte teksten zijn te vinden in het normenkader.
Documenten ophalen
Alvorens de aanvraag ingediend mag worden, dienen de slotverklaring en de privacyverklaring inzichtelijk gemaakt te worden richting de consument. Dit kan met behulp van de Documenten API.
De aanvraagwebapi:Aanvraag
bevat de attributen SamenvattingId
, PrivacyverklaringId
en SlotverklaringId
waarmee aanvullende documenten gedownload kunnen worden als PDF.
/documenten/{documentId}/inhoud
/privacyverklaring/inhoud
Let op: Er wordt automatisch een concept slotverklaring gegenereerd zodra alle slotvragen en acceptatievragen zijn ingevuld. Deze dient getoond te worden aan de klant alvorens deze wordt ondertekend. Na ondertekening wordt een definitieve slotverklaring gegenereerd, met daarbij de ondertekening opgenomen in de PDF; hierbij wijzigt het
SlotverklaringId
in de aanvraag.
! De definitieve slotverklaring wordt ook meegestuurd in de bijlage van de ontvangstbevestiging naar de klant ( e-mail ).
8. Indienen
Om de aanvraag definitief te maken moet deze uiteindelijk ingediend worden.
/aanvragen/{aanvraagId}/indienen
Let op: een PUT request vereist volgens de standaard een body.
IndienenAanvraag
is feitelijk dan ook niet veel meer dan een lege body ({}
) welke meegegeven wordt aan het request.
Let op: ons systeem werkt asynchroon, wat betekent dat API-calls niet onmiddelijk worden verwerkt. Bij deze
IndienenAanvraag
call controleren we of alle verplichte vragen zijn beantwoord. Enige vertraging kan voorkomen, waardoor bepaalde antwoorden op vragen mogelijk nog niet zijn verwerkt. Om ervoor te zorgen dat uw aanvraag correct wordt verwerkt, raden we aan om deIndienenAanvraag
call meerdere keren achter elkaar uit te voeren. In onze eigen client voeren we deze call bijvoorbeeld 4 keer achter elkaar uit, met een vertraging van 500ms tussen elke call. Dit zorgt voor een optimale afhandeling van uw aanvraag.
! Zodra de aanvraag succesvol is ingediend verandert de status in de
aanvraagwebapi:Aanvraag
van Concept naar InBehandeling.
Gebruik maken van de InterestService
Ons systeem werkt asynchroon, waardoor API-calls niet onmiddelijk worden verwerkt. Om hier een goede client voor te bouwen wordt er aangeraden om gebruik te maken van de InterestService. De InterestService is een websocket gemaakt met Socket.IO die een bericht stuurt naar de gebruiker als er een aanpassing is doorgevoerd op een aanvraag. Als er gebruik wordt gemaakt van de InterestService, wordt voorkomen dat clients moeten pollen om de laatste status van een aanvraag op te halen.
1. Verbinden met de InterestService
Importeer de Socket.IO library en maak een nieuwe websocket verbinding aan met de url:
https://interest-service.voogd.com
Geef als queryparameter de volgende waarde mee:
Authorization: 'Bearer <token>'
- Dit is hetzelfde token dat gebruikt wordt bij de andere web API's.
2. Subscribe de websocket
Verbind de websocket met de client. Subscribe de websocket op het event:
aanvraagversieGewijzigd
3. Luister naar events van een specifieke aanvraag
Emit de websocket zodat deze gaat luisteren naar een specifieke aanvraag. Stuur het id van de aanvraag en geef de volgende tekst op:
registerAanvraagInterest
4. Wacht op binnenkomende events
De websocket is nu verbonden en ontvangt events van een specifieke aanvraag. Elke keer als er een aanpassing is op deze aanvraag, stuurt de InterestService een bericht terug dat er iets is aangepast. Soms geeft de InterestService een reeks berichten terug, we raden aan om bij het laatste event een nieuwe GET van de aanvraag te doen.
5. Stop het luisteren naar events
Als er geen interesse meer is in deze aanvraag, bijvoorbeeld als de aanvraag is ingediend of als het concept ter goedkeuring bij de consument ligt, moet de interesse in de aanvraag worden opgezegd. Dit kan gedaan worden door het id van de aanvraag in combinatie met de volgende tekst op te sturen:
deregisterAanvraagInterest
// Importeer de Socket.IO library
import io from 'socket.io-client';
import { fromEvent } from 'rxjs';
// Maak een nieuwe Socket.IO instance
const socket = io('https://www.interest-service.voogd.com', {
autoConnect: true,
query: {
'Authorization': 'Bearer <token>',
}
});
// Subscribe op het event
fromEvent(this.socket, 'aanvraagversieGewijzigd');
...
// Na het aanmaken van een aanvraag krijg je een AanvraagId, hier kunnen we op subscriben
this.socket.emit('registerAanvraagInterest', <AanvraagId>);
...
// Als er geen interesse meer is in de aanvraag events, kan de interesse hiermee worden opgezegd.
// De websocket blijft hiermee actief:
this.socket.emit('deregisterAanvraagInterest', <AanvraagId>);