Aller au contenu

Polices et renouvellements

Le volet financier des mêmes événements est dans Paiements.

Le déroulé de l’émission, avec les emails, est dans le flux Émission de la police.

Émission. En libre-service, la tâche de traitement crée la police, la période 1 (affaire nouvelle) et le contrat (modèle Word converti en PDF). Elle le signe pour Inqase (« pré-signé ») et annonce l’émission de la police, qui envoie le seul email d’achat (contrat en pièce jointe). La tâche exige un email de contact (sinon elle journalise un avertissement et n’émet rien) et Slack est alerté si elle échoue après 3 essais. Dans le parcours admin, la plupart des actions ne sont possibles que dans certains statuts de la demande ; la signature se fait par DocuSign, par SMS (aucun fournisseur SMS branché : en production le code n’est pas envoyé) ou par dépôt manuel du contrat signé.

Après l’émission. Un avenant (modification en cours de période) ajoute une période de type avenant, rattachée à la période d’origine, voir Échecs, avenants et remboursements. Le seul cas où une police est annulée est un litige perdu, qui écrit une ligne d’annulation négative au bordereau, voir Commissions et bordereau.

Le déroulé des échéances, avenants et renouvellements, avec les emails et les tâches non planifiées, est dans le flux Après l’émission.

Renouvellement. La tacite reconduction (le contrat se prolonge d’un an) ajoute une période de renouvellement à la même police, jamais un clone. La tâche de demande de déclaration envoie par email un lien de connexion signé, valable jusqu’à la fin du terme, aux polices qui se terminent dans les 30 jours (délai réglable) ; le client ou le courtier déclare le chiffre d’affaires, un admin valide (et peut corriger, avec trace). La tâche de renouvellement fait ensuite démarrer le terme suivant à la fin de la période active, pour un an, avec une prime recalculée sur le chiffre d’affaires déclaré. Pourquoi : cloner la police dupliquait les données et cassait l’historique d’une police belge reconduite tacitement.

  • Numérotation. « P », le code de l’assureur, un tiret, l’année et le mois sur 4 chiffres, puis un compteur sur 3 chiffres (exemple : P01-2605001). Le compteur prend le plus haut numéro du mois, lignes supprimées comprises, plus 1 ; un conflit de numéro est réessayé, 3 tentatives au plus.
  • Conditions figées. La police fige primes, taxe, franchise, garanties, taux de commission, fichiers de conditions et déclarations de risque ; régénérer le contrat conserve les chiffres d’origine. Un contrat signé n’est jamais remplacé. Voir Conditions figées sur la police.
  • Un même message n’a d’effet qu’une fois. L’émission ne fait rien si la demande est déjà « police émise » ; il n’existe qu’une tâche à la fois par paiement, et elle s’arrête si la date de signature est déjà renseignée. Un paiement sur une offre rejetée ne crée aucune police.
  • Notification DocuSign. La réception vérifie la signature du message (empreinte calculée avec un secret partagé avec DocuSign) et répond 401 à une requête non signée ou si le secret est absent, dans tous les environnements. Seuls l’identifiant de l’enveloppe et le statut sont journalisés. Un message « signé » rejoué ne fait rien. Pourquoi : hors production, un secret absent a laissé passer des requêtes non vérifiées et le contenu du message (données personnelles) était journalisé.
  • Liens de connexion. Le client n’a pas de mot de passe. Un lien signé est envoyé par email (valable 30 minutes, 24 heures pour un lien de bienvenue), sans révéler si l’adresse existe ; il est à usage unique, y compris les liens de renouvellement, de préavis et de mandat qui passent par le même circuit. La demande de connexion est limitée à 5 par minute et l’ouverture d’un lien à 10 par minute. L’accès client exige un abonnement Stripe actif, en essai, en retard de paiement ou impayé.
  • Périodes. La période active est la période confirmée portant le numéro le plus élevé ; les informations de la police la reflètent, et la date de début garde l’origine du contrat. Un renouvellement ne bloque jamais : sans déclaration validée, la valeur précédente est reportée (marquée « en retard » et « à régulariser »), régularisée plus tard par un avenant admin, et Slack est alerté.
  • Le renouvellement saute les polices qui ne sont pas actives ; chaque renouvellement est une opération isolée (tout passe ou rien) ; si un terme suivant existe déjà, le renouvellement échoue ; la ligne de renouvellement du bordereau est écrite dans la même opération.
  • Les tâches de demande de déclaration et de renouvellement ne sont pas planifiées (un commentaire dans le fichier de planification le dit).
  • Le prix de l’abonnement Stripe n’est pas mis à jour après un renouvellement : l’ancien montant continue d’être facturé.
  • Les déclarations tardives se régularisent à la main par un avenant.
  • app/Services/PolicyService.php, PolicyDocumentService.php, DocuSignService.php
  • app/Services/RenewalService.php, RenewalDeclarationService.php, MagicLinkService.php
  • app/Http/Controllers/Api/Webhooks/DocuSignWebhookController.php
Terme de la page Identifiant technique
Annonce de paiement réussi PaymentSucceeded
Tâche de traitement après paiement ProcessPolicyAfterPayment (ShouldBeUnique)
Annonce de police émise, signée, avenant émis, renouvelée PolicyIssued, PolicySigned, PolicyEndorsed, PolicyRenewed
Police, période Policy, PolicyPeriod
Période : affaire nouvelle, avenant, renouvellement NewBusiness, Endorsement, Renewal
Période d’origine d’un avenant source_period_id
Numéro de période period_number
Contrat pré-signé, date de signature pre_signed, policy_signed_at
Parcours admin Admin\Pipeline\ActionController
Signature par DocuSign, SMS, dépôt manuel docusign, sms, manual
Tâche de demande de déclaration renewals:request-declarations
Tâche de renouvellement renewals:process-due, RenewalService::renew
Délai de la demande de déclaration pricing.policy_dates.renewal_declaration_lead_days
Code de l’assureur pricing.insurer_code
Notification DocuSign POST /api/v1/webhooks/docusign
Annulation d’une police Policy::cancel
Rattrapage des commissions broker:backfill-commissions
Envoi du lien de connexion MagicLinkService::send
Demande de connexion, ouverture d’un lien POST /portal/login, GET /portal/auth/{user}
Valeurs reportées d’une déclaration tardive late, to_regularise
  • Une signature DocuSign passe la demande à « police émise » mais annonce la signature, pas l’émission : pas d’email d’émission, pas de notification courtier et pas de commission de première échéance du courtier via les traitements automatiques (rattrapage : la commande de rattrapage des commissions).
  • À partir de la 1001e police d’un mois, le numéro entre en conflit : la recherche du compteur s’arrête à 999, donc elle renvoie de nouveau 999 une fois la 1000e créée (déduit de la lecture, non testé).
  • Quand les deux tâches de renouvellement seront planifiées, et comment le prix Stripe sera mis à jour (en attente de la validation Hiscox).
  • Quel compte DocuSign la production utilise (l’adresse d’interface par défaut est celle de la démo).