Claimity Logo
    Mode d'emploiIntégration APIAssistance
    Connexion

    Claimity API

    Documentation API

    Référence technique et guides pour l'intégration avec Claimity.

    Vue d'ensemble

    L'API utilise des méthodes HTTPS et des points de terminaison RESTful pour créer, modifier et gérer des ressources dans le système. JSON est utilisé comme format d'échange.

    Premiers pas

    Cette API offre un accès complet aux fonctions principales. Qu'il s'agisse d'intégrations, d'automatisation ou d'applications personnalisées, l'API offre la flexibilité nécessaire pour connecter Claimity à vos systèmes.

    Extension des interfaces

    • •Consultez régulièrement le journal des modifications pour rester à jour.
    • •Les modifications incompatibles sont annoncées à l'avance.
    • •Vous serez informé à temps des changements importants.

    Premiers pas

    Comment démarrer avec l'API :

    1

    Créer une paire de clés

    En tant qu'administrateur de l'organisation, vous pouvez créer une paire de clés dans les paramètres de l'organisation de votre compte Claimity. Ensuite, téléchargez la clé privée et conservez-la en lieu sûr.

    2

    S'authentifier

    À l'aide de la paire de clés créée et de votre identifiant client, vous pouvez vous authentifier auprès de l'API Claimity et ainsi obtenir un jeton d'accès pour vos requêtes.

    3

    Préparer l'en-tête DPoP

    Pour envoyer une requête à l'API, il est nécessaire de créer un en-tête DPoP. Cet en-tête est signé avec la clé privée et sécurise la requête contre les risques de sécurité potentiels.

    4

    Première requête

    Envoyez une requête authentifiée à un point de terminaison avec votre jeton d'accès et l'en-tête DPoP.

    Exemple de requête
    curl -X GET \
      https://app.claimity.ch/v1/experts/cases \
      -H 'Accept: application/json' \
      -H 'Authorization: DPoP {access-token}' \
      -H 'DPoP: {dpop-header}'

    Notebooks Python

    Pour un démarrage rapide, nous mettons à votre disposition des notebooks Python avec lesquels vous pouvez exécuter des requêtes API et consulter directement les réponses.

    Voir les notebooks sur GitHub

    Signaler un problème

    Si vous avez rencontré une erreur, nous vous aiderons. Assurez-vous au préalable que le problème est reproductible.

    Avant de signaler

    • ✓Vérifier la reproductibilité
    • ✓Effectuer des tests API avec Postman/Insomnia
    • ✓Recueillir des détails sur la requête et la réponse
    • ✗Ne pas envoyer de données d'accès dans le rapport

    Soumettre un rapport

    Veuillez décrire les étapes pour reproduire. Notre support examinera le cas rapidement et vous répondra dès que possible.

    Signaler un problème

    Remarque : L'API est fournie sur la base de cette documentation. Il n'y a pas d'implémentation guidée ou de support de code.

    Journal des modifications

    Toutes les modifications et mises à jour de la version actuelle de l'API en un coup d'œil.

    2026-10-07

    Nouveau : montants du dossier. Les sinistres (assureurs) et les dossiers (experts) fournissent dans la liste et le détail CostEstimateAmount (devis), ApprovedAmount (montant validé par l'expertise) et SavingsAmount (économie = devis − montant validé, uniquement si positive) – tous en CHF, null = non saisi. Les experts définissent les montants via PUT /v1/experts/cases/{caseId}/amounts (204). Une modification des montants fait avancer LastChangedAt. L'extension est rétrocompatible.

    2026-08-02

    Refonte des filtres de synchronisation : updatedSince devient lastChangedSince (les deux points de terminaison /v1/insurers/claims et /v1/experts/cases) — le filtre porte désormais le nom du champ qu'il filtre (LastChangedAt). Nouveau : lastReportApprovedSince sur /v1/insurers/claims ne renvoie que les sinistres dont la dernière approbation de rapport est au/après l'instant donné (les sinistres sans rapport approuvé ne correspondent jamais). completedFrom/completedTo restent inchangés et filtrent le moment de la clôture la plus récente.

    2026-07-15

    API Expert : nouveau point de terminaison pour rouvrir un dossier clôturé (POST /v1/experts/cases/{caseId}:reopen, renvoie 204). Les points de terminaison de liste ont reçu des filtres (recherche plein texte q, plages de dates de création/clôture) et un curseur updatedSince pour la synchronisation incrémentale. Les dossiers exposent désormais LastChangedAt ; les sinistres exposent en plus LastReportApprovedAt. Les points de terminaison de création et de téléversement renvoient désormais 201 Created. Chaque réponse renvoie désormais un en-tête X-Correlation-Id (une valeur entrante valide est répercutée) pour le traçage de bout en bout ; en cas d'erreur, il correspond aussi à l'instance ProblemDetails.

    2026-06-09

    Ajout de la nouvelle catégorie « Expertises spéciales », incluant le schéma et la structure de payload.

    2025-12-30

    Ajout d'un nouveau point de terminaison à l'API assureur pour valider la structure du dossier.

    2025-12-28

    Première version de l'API publiée.

    Authentification

    L'API Partenaire Claimity utilise OAuth 2.0 Client Credentials avec JWT Client Assertion (RS256) et sécurise chaque requête avec DPoP Proof-of-Possession (ES256). Le jeton d'accès est lié à votre clé DPoP(cnf.jkt) : utilisez une seule clé pour toute la session — la demande de jeton et chaque appel API — et signez déjà la demande de jeton avec une preuve DPoP.

    Flux d'authentification

    Comment fonctionne le flux OAuth2 Client-Credentials.

    Diagramme de séquence du flux d'authentification (OAuth2 Client Credentials + DPoP)

    Processus

    1. Paire de clés : L'organisation crée une paire de clés RSA dans Claimity (la clé privée est stockée en toute sécurité).
    2. JWT Client Assertion : Le client génère un JWT de courte durée (RS256).
    3. Demande de jeton : Le client envoie POST /v1/oauth/token (Client-Credentials + Assertion) avec une preuve DPoP, qui lie le jeton émis à la clé DPoP.
    4. Validation : Le serveur d'authentification vérifie la signature de l'assertion et les autorisations et renvoie la réponse du jeton.
    5. URL de requête : Le client crée l'URL de requête (y compris les paramètres de requête).
    6. Preuve DPoP : Le client crée un JWT DPoP (ES256) par requête lié à la méthode + URL, signé avec la même clé que celle utilisée pour la demande de jeton.
    7. Appel API : Le client appelle le point de terminaison avec Authorization: DPoP access_token et DPoP: ….
    8. Réponse : L'API vérifie le jeton/DPoP et traite la demande / renvoie la réponse.

    Lire le jeton d'accès

    Pour les intégrations partenaires, votre organisation s'authentifie via une JWT Client Assertion signée.

    Prérequis

    • •Client ID (par ex. org-expo-00001) lisible dans les paramètres de l'organisation Claimity
    • •Clé privée RSA des paramètres de l'organisation Claimity (à conserver en lieu sûr et ne jamais partager)

    Point de terminaison de jeton

    URLPOST https://app.claimity.ch/v1/oauth/token
    Content-Typeapplication/x-www-form-urlencoded
    Champs de formulaire
    grant_type = client_credentials
    client_id = <Votre client id>
    client_assertion_type = urn:ietf:params:oauth:client-assertion-type:jwt-bearer
    client_assertion = <JWT (RS256)>
    scope (optionnel)

    URL

    POST https://app.claimity.ch/v1/oauth/token

    Content-Type

    application/x-www-form-urlencoded

    Champs de formulaire

    grant_type = client_credentials
    client_id = <Votre client id>
    client_assertion_type = urn:ietf:params:oauth:client-assertion-type:jwt-bearer
    client_assertion = <JWT (RS256)>
    scope (optionnel)
    JWT Client Assertion (RS256)

    L'assertion est un JWT de courte durée (10 minutes) et est signée avec votre clé privée RSA.

    • •iss/sub = client_id
    • •aud = https://app.claimity.ch/realms/claimity/protocol/openid-connect/token
    • •jti = UUID (unique)
    • •iat/exp = “now” / “now+600s” (10 min)
    • •kid (optionnel)
    Exemple : Demande de jeton (cURL, espace réservé)
    curl -X POST \
      'https://app.claimity.ch/v1/oauth/token' \
      -H 'Content-Type: application/x-www-form-urlencoded' \
      -d 'grant_type=client_credentials' \
      -d 'client_id=org-expo-00001' \
      -d 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' \
      -d 'client_assertion=<RS256-JWT-CLIENT-ASSERTION>' \
      -d 'scope=roles'

    Réponse du jeton

    La réponse contient un access_token. Important : Pour les appels API, ce jeton est utilisé comme jeton DPoP.

    Envoyer des requêtes API

    Chaque requête nécessite en plus un JWT de preuve DPoP. Une nouvelle preuve est générée par requête et signée (ES256) pour lier la requête à la méthode + URL, mais toujours avec la même clé à laquelle le jeton d'accès est lié (cnf.jkt). Une preuve signée avec une autre clé est rejetée avec 401 "Access token is not bound to the DPoP proof key".

    En-têtes requis

    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Acceptapplication/json
    Content-Typeapplication/json

    Authorization

    DPoP {access_token}

    DPoP

    {dpop_proof_jwt}

    Accept

    application/json

    Content-Type

    application/json
    Contenu de la preuve DPoP
    • •htu doit être l'URL exacte y compris la chaîne de requête
    • •htm doit correspondre exactement à la méthode HTTP (GET/POST/PUT/DELETE)
    • •jti doit être nouveau par requête (pas de relectures)
    • •iat doit être dans la fenêtre de temps autorisée (éviter le décalage d'horloge)
    • •ath = base64url(SHA-256(access_token))
    Exemple : Appel API authentifié (cURL)
    curl -X GET \
      'https://app.claimity.ch/v1/experts/cases?page=1&size=50' \
      -H 'Accept: application/json' \
      -H 'Authorization: DPoP {access_token}' \
      -H 'DPoP: {dpop_proof_jwt}'
    Dépannage : 401 invalid_dpop

    Causes courantes :

    • •not bound : requête signée avec une clé différente de celle du jeton — réutilisez l'unique clé de session et envoyez une preuve DPoP sur la demande de jeton
    • •htu mismatch : L'URL doit être exacte y compris la requête
    • •htm mismatch : La méthode doit correspondre
    • •iat hors fenêtre : Corriger l'heure système
    • •replay : jti doit être nouveau par requête
    • •ath mismatch : SHA-256(access_token) base64url

    Identifiant de corrélation

    Chaque réponse renvoie un en-tête X-Correlation-Id. Claimity utilise le même identifiant dans ses journaux serveur et, en cas d'erreur, comme champ instance du corps application/problem+json — journalisez-le et indiquez-le dans vos demandes de support.

    Vous pouvez aussi fournir votre propre identifiant pour tracer une requête de bout en bout : envoyez un en-tête de requête X-Correlation-Id avec un jeton court et imprimable (≤ 80 caractères). Une valeur valide est renvoyée telle quelle ; une valeur invalide ou trop longue est ignorée et Claimity en génère une. L'identifiant de corrélation est indépendant de DPoP (la preuve ne lie que la méthode + l'URL), l'ajout de cet en-tête n'affecte donc pas la signature.

    Bases de l'API

    Concepts et conventions de base utilisés dans toute l'API.

    Format de requête

    Chaque requête se compose de Méthode, URL, Paramètres de requête optionnels, En-têtes et (pour POST/PUT) un Corps JSON.

    Structure de l'URL

    Base URL : https://app.claimity.ch
    Chemin : /v1/<ressource>
    Requête : par ex. ?page=1&size=50
    Exemple d'URL
    https://app.claimity.ch/v1/…?page=1&size=50

    Méthodes HTTP

    GETRécupérer des ressources
    POSTCréer des ressources
    PUTRemplacer/mettre à jour des ressources
    DELETESupprimer des ressources

    En-têtes typiques

    • •Accept: application/json
    • •Content-Type: application/json (pour le corps JSON)
    • •Authorization: DPoP <access_token>
    • •DPoP: <dpop_proof_jwt>

    Format de réponse

    Les réponses sont généralement en JSON (Content-Type: application/json) et utilisent des codes d'état HTTP pour signaler le succès/l'erreur.

    Réponses de succès

    • •2xx (par ex. 200, 201, 204)
    • •Le corps contient généralement un objet ou une liste
    Exemple (Objet)
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
      "id": "…",
      "…": "…"
    }

    Réponses d'erreur (ProblemDetails)

    • •4xx/5xx (par ex. 400, 401, 403, 404, 429, 500)
    • •Le corps suit une structure de type ProblemDetails
    Exemple (JSON Problème)
    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
      "type": "about:blank",
      "title": "Bad Request",
      "status": 400,
      "detail": "…"
    }

    Limitation de débit

    L'API Partenaire est protégée par une limitation de débit pour garantir une utilisation équitable et la stabilité. Les limites sont appliquées par partition client.

    Validation anonyme

    POST /v1/insurers/claims:validate est utilisable sans jeton et donc limité plus strictement.

    • •FixedWindow : 10 requêtes/minute par client/IP

    Standard pour l'API Partenaire

    Pour les points de terminaison standard, le nombre de requêtes est légèrement limité.

    • •TokenBucket : env. 60 Requêtes/Minute, Rafale jusqu'à 20, File d'attente 0

    Routes de documents

    Pour les points de terminaison avec .../documents..., des limites plus strictes s'appliquent (par ex. pour le téléchargement).

    • •TokenBucket : env. 20 Requêtes/Minute, Rafale jusqu'à 10, File d'attente 0

    Point de terminaison de jeton

    Le point de terminaison de jeton est strictement limité pour empêcher d'éventuelles attaques.

    • •Fenêtre fixe : 10 Requêtes/Minute par Client
    Lorsqu'une limite est atteinte (HTTP 429)
    • •Réponse : 429 Too Many Requests (Code de rejet 429)
    • •En-tête optionnel : Retry-After
    • •Indice de diagnostic/politique : X-RateLimit-Policy
    • •Corps : JSON Problème

    Recommandations pour les clients

    • •Réessayer les requêtes 429 avec backoff et respecter Retry-After.
    • •Limiter les téléchargements de documents.
    • •Les rafales sont limitées (pas de file d'attente) – une forte parallélisation entraîne plus rapidement des 429.

    Idempotence (Idempotency-Key)

    Les requêtes POST peuvent porter l'en-tête Idempotency-Key (valeur unique librement choisie, p. ex. un UUID). Si la même requête est répétée — par exemple après un timeout — l'API renvoie la réponse enregistrée sans exécuter l'opération une seconde fois.

    • •La clé est liée à la méthode, au chemin, au client et au hash du payload — la même clé avec un payload différent compte comme une nouvelle requête.
    • •Les réponses enregistrées sont conservées 24 heures pour le replay.
    • •Les corps de requête au-delà de 16 Mo contournent l'idempotence ; les réponses au-delà de 16 Mo ne sont pas enregistrées pour le replay (un retry ré-exécute l'opération).
    • •Recommandation : toujours le définir sur POST /v1/insurers/claims — les retries après erreurs réseau sont alors garantis sans doublons.

    Catalogue d'erreurs

    Les erreurs suivent la structure ProblemDetails (title, status, detail). Les erreurs de validation du payload arrivent en ValidationProblemDetails avec une map errors ; chaque message nomme le chemin du champ et l'attente concrète.

    titleSignification
    invalid_org_contextLe jeton n'est pas associé à une organisation (unique) du type attendu.
    forbiddenL'accès à la ressource n'est pas autorisé avec ce jeton.
    org_without_membersL'organisation n'a aucun membre — création/consultation impossible.
    invalid_categoryCatégorie de sinistre inconnue (autorisées : vehicle, appraiser, fraud, special).
    invalid_payloadPayloadJson manquant ou JSON invalide.
    invalid_stateL'action n'est pas autorisée dans le statut actuel du dossier (p. ex. rouvrir un dossier non clôturé).
    invalid_document / missing_documentsDocument invalide ou documents requis manquants.
    unsupported_content_type / size_limit_exceededType de fichier non autorisé ou limite d'upload dépassée.
    upstream_timeout / upstream_errorUn service en aval n'a pas répondu (à temps) — retry avec backoff.
    Exemple : 400 lors de la validation du payload (POST /v1/insurers/claims:validate)
    HTTP/1.1 400 Bad Request
    Content-Type: application/problem+json
    
    {
      "title": "One or more validation errors occurred.",
      "status": 400,
      "errors": {
        "PayloadJson": [
          "PayloadJson does not match the required schema for the selected category.",
          "counterparty.email: is required.",
          "workshop.country: must be one of: CH, DE, AT, FR, IT, LI.",
          "incidentDate: the incident date cannot be in the future — got 2099-01-15, today is 2026-08-02 (Europe/Zurich)."
        ]
      }
    }

    Experts

    Points de terminaison pour les experts pour travailler avec des dossiers, des documents et des soumissions de rapports.

    Horodatages & synchronisation incrémentale

    Horodatages et filtres de synchronisation (inclusifs >=), nommés d'après le champ qu'ils filtrent :

    • CreatedAt — Date de création du sinistre. Filtres : createdFrom / createdTo.
    • completedFrom / completedTo filtrent sur le moment de la clôture la plus récente (événement Finalized ; pour les dossiers rouverts, la clôture la plus récente compte). Prévu pour des fenêtres d'analyse (« tous les dossiers clôturés au T2 ») — pas pour la synchronisation.
    • LastChangedAt — Dernière modification pertinente pour le partenaire (statut, documents, rapports, commentaires, montants). Filtre : lastChangedSince.

    Dossiers

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de requête

    NomTypeRequisDéfaut
    statusstring
    categorystring
    pageinteger (int32)1
    sizeinteger (int32)50
    inspectionTypestring
    qstring
    createdFromstring (date-time)
    createdTostring (date-time)
    completedFromstring (date-time)
    completedTostring (date-time)
    lastChangedSincestring (date-time)
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MCaseListItemDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ExternalKey": "string",
          "Category": "vehicle",
          "Status": "Created",
          "CreatedAt": "2025-12-31T12:00:00Z",
          "UpdatedAt": "2025-12-31T12:00:00Z",
          "ExpertComment": "string",
          "PayloadJson": "string",
          "ArchiveState": false,
          "Insurer": {
            "Name": "string",
            "Responsible": {
              "Name": "string",
              "Email": "string",
              "Phone": "string"
            }
          },
          "HailDriveInAccepted": false,
          "LastChangedAt": "2025-12-31T12:00:00Z",
          "CostEstimateAmount": 0,
          "ApprovedAmount": 0,
          "SavingsAmount": 0
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ExternalKey
    string✓
    Category
    string✓
    vehiclefraudappraiserspecial
    Status
    string✓
    CreatedAssignedRejectedAcceptedInProgressExpertCompletedAdminApprovedAdminReturnedAdminCancelledFinal
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    ExpertComment
    string✓
    PayloadJson
    string✓
    ArchiveState
    boolean
    Insurer
    M2MInsurerDto
    HailDriveInAccepted
    boolean✓
    LastChangedAt

    Partner-sync cursor. Advances on every partner-visible change to the case (report approval, document upload, expert comment, status change). On the next poll, pass the highest value you have seen as the `lastChangedSince` query parameter to fetch only what changed since.

    string(date-time)
    CostEstimateAmount

    Workshop cost estimate in CHF (null = not entered yet). Set by the expert via PUT /v1/experts/cases/{caseId}/amounts.

    number(double)✓
    ApprovedAmount

    Amount approved by the expert report in CHF (null = not entered yet).

    number(double)✓
    SavingsAmount

    Savings in CHF = CostEstimateAmount - ApprovedAmount; only when both are set and the estimate is higher, otherwise null.

    number(double)✓
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ExternalKey": "string",
      "Category": "vehicle",
      "Status": "Created",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z",
      "ExpertComment": "string",
      "PayloadJson": "string",
      "ArchiveState": false,
      "Insurer": {
        "Name": "string",
        "Responsible": {
          "Name": "string",
          "Email": "string",
          "Phone": "string"
        }
      },
      "HailDriveInAccepted": false,
      "LastChangedAt": "2025-12-31T12:00:00Z",
      "CostEstimateAmount": 0,
      "ApprovedAmount": 0,
      "SavingsAmount": 0
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Text
    string✓
    Exemple de corps
    {
      "Text": "string"
    }
    Aucun schéma JSON documenté.

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    CostEstimateAmount

    Workshop cost estimate in CHF (>= 0, max. 2 decimals); null clears it.

    number(double)✓
    ApprovedAmount

    Amount approved by the expert report in CHF (>= 0, max. 2 decimals); null clears it.

    number(double)✓
    Exemple de corps
    {
      "CostEstimateAmount": 0,
      "ApprovedAmount": 0
    }
    Aucun schéma JSON documenté.

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Reason

    Required reason for reopening the finalized case; recorded on the audited reopened_by_expert event.

    string✓
    Exemple de corps
    {
      "Reason": "string"
    }
    Aucun schéma JSON documenté.

    Documents du dossier

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MExpertDocumentDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "FileName": "string",
          "ContentType": "string",
          "SizeBytes": 0,
          "CreatedAt": "2025-12-31T12:00:00Z"
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓
    documentIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    FileName
    string✓
    ContentType
    string✓
    SizeBytes
    integer(int64)
    CreatedAt
    string(date-time)
    ContentBase64
    string✓
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "FileName": "string",
      "ContentType": "string",
      "SizeBytes": 0,
      "CreatedAt": "2025-12-31T12:00:00Z",
      "ContentBase64": "string"
    }

    Rapports & Soumissions

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Comment
    string✓
    Exemple de corps
    {
      "Comment": "string"
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ClaimId
    string(uuid)
    SequenceNo
    integer(int32)
    Status
    string✓
    DraftSubmittedApprovedReturnedCancelled
    Comment
    string✓
    SubmittedAt
    string(date-time)✓
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "SequenceNo": 0,
      "Status": "Draft",
      "Comment": "string",
      "SubmittedAt": "2025-12-31T12:00:00Z",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z"
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Comment
    string✓
    Exemple de corps
    {
      "Comment": "string"
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ClaimId
    string(uuid)
    SequenceNo
    integer(int32)
    Status
    string✓
    DraftSubmittedApprovedReturnedCancelled
    Comment
    string✓
    SubmittedAt
    string(date-time)✓
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "SequenceNo": 0,
      "Status": "Draft",
      "Comment": "string",
      "SubmittedAt": "2025-12-31T12:00:00Z",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z"
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MReportListItemDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "SequenceNo": 0,
          "RevisionNo": 0,
          "Status": "Draft",
          "Comment": "string",
          "SubmittedAt": "2025-12-31T12:00:00Z",
          "CreatedAt": "2025-12-31T12:00:00Z",
          "UpdatedAt": "2025-12-31T12:00:00Z"
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    caseIdstring (uuid)✓
    submissionIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ClaimId
    string(uuid)
    SequenceNo
    integer(int32)
    Status
    string✓
    DraftSubmittedApprovedReturnedCancelled
    Comment
    string✓
    SubmittedAt
    string(date-time)✓
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "SequenceNo": 0,
      "Status": "Draft",
      "Comment": "string",
      "SubmittedAt": "2025-12-31T12:00:00Z",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z"
    }

    Documents de soumission

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    submissionIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MExpertReportSubmissionDocumentDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "SubmissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "FileName": "string",
          "ContentType": "string",
          "SizeBytes": 0,
          "Kind": "string",
          "IsSalvageSale": false,
          "CreatedAt": "2025-12-31T12:00:00Z",
          "ContentBase64": "string"
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    submissionIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    FileName
    string✓
    ContentType
    string✓
    ContentBase64
    string✓
    IsSalvageSale
    boolean✓
    Exemple de corps
    {
      "FileName": "string",
      "ContentType": "string",
      "ContentBase64": "string",
      "IsSalvageSale": false
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    SubmissionId
    string(uuid)
    ClaimId
    string(uuid)
    FileName
    string✓
    ContentType
    string✓
    SizeBytes
    integer(int64)
    Kind
    string✓
    IsSalvageSale
    boolean
    CreatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "SubmissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "FileName": "string",
      "ContentType": "string",
      "SizeBytes": 0,
      "Kind": "string",
      "IsSalvageSale": false,
      "CreatedAt": "2025-12-31T12:00:00Z"
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    submissionIdstring (uuid)✓
    docIdstring (uuid)✓
    Aucun schéma JSON documenté.

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    submissionIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ClaimId
    string(uuid)
    SequenceNo
    integer(int32)
    Status
    string✓
    DraftSubmittedApprovedReturnedCancelled
    Comment
    string✓
    SubmittedAt
    string(date-time)✓
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "SequenceNo": 0,
      "Status": "Draft",
      "Comment": "string",
      "SubmittedAt": "2025-12-31T12:00:00Z",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z"
    }

    Assureurs

    Points de terminaison pour les assureurs pour créer/valider/récupérer des sinistres, des documents et des aperçus de rapports.

    Horodatages & synchronisation incrémentale

    Quatre horodatages pilotent le filtrage des listes et la synchronisation. Les filtres de synchronisation portent le nom du champ qu'ils filtrent et comparent inclusivement (>=).

    • CreatedAt — Date de création du sinistre. Filtres : createdFrom / createdTo.
    • completedFrom / completedTo filtrent sur le moment de la clôture la plus récente (événement Finalized ; pour les dossiers rouverts, la clôture la plus récente compte). Prévu pour des fenêtres d'analyse (« tous les dossiers clôturés au T2 ») — pas pour la synchronisation.
    • LastChangedAt — Dernière modification pertinente pour le partenaire (statut, documents, rapports, commentaires, montants). Filtre : lastChangedSince.
    • LastReportApprovedAt — Moment de la dernière approbation de rapport (null si aucune). Filtre : lastReportApprovedSince — les sinistres sans rapport approuvé ne correspondent jamais.

    Recette de synchronisation (poller quotidien)

    1. Interroger avec lastChangedSince=<curseur enregistré> (premier passage : sans le filtre).
    2. Traiter les résultats de manière idempotente — la comparaison est inclusive, la valeur limite peut réapparaître.
    3. Enregistrer comme nouveau curseur le maximum des LastChangedAt observés.
    4. Seuls les nouveaux rapports approuvés vous intéressent ? Même déroulement avec lastReportApprovedSince et LastReportApprovedAt.

    Sinistres

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de requête

    NomTypeRequisDéfaut
    categorystring
    statusstring
    pageinteger (int32)1
    sizeinteger (int32)50
    qstring
    createdFromstring (date-time)
    createdTostring (date-time)
    completedFromstring (date-time)
    completedTostring (date-time)
    lastChangedSincestring (date-time)
    lastReportApprovedSincestring (date-time)
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MInsurerClaimListItemDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ExternalKey": "string",
          "Category": "vehicle",
          "Status": "Created",
          "CreatedAt": "2025-12-31T12:00:00Z",
          "UpdatedAt": "2025-12-31T12:00:00Z",
          "ExpertComment": "string",
          "PayloadJson": "string",
          "ArchiveState": false,
          "Expert": {
            "Name": "string",
            "Responsible": {
              "Name": "string",
              "Email": "string",
              "Phone": "string"
            }
          },
          "HailDriveInAccepted": false,
          "LastReportApprovedAt": "2025-12-31T12:00:00Z",
          "LastChangedAt": "2025-12-31T12:00:00Z",
          "CostEstimateAmount": 0,
          "ApprovedAmount": 0,
          "SavingsAmount": 0
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Category
    string✓
    vehiclefraudappraiserspecial
    PayloadJson
    string✓
    Exemple de corps
    {
      "Category": "vehicle",
      "PayloadJson": "string"
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ExternalKey
    string✓
    Category
    string✓
    vehiclefraudappraiserspecial
    Status
    string✓
    CreatedAssignedRejectedAcceptedInProgressExpertCompletedAdminApprovedAdminReturnedAdminCancelledFinal
    PayloadJson
    string✓
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ExternalKey": "string",
      "Category": "vehicle",
      "Status": "Created",
      "PayloadJson": "string"
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    Category
    string✓
    vehiclefraudappraiserspecial
    PayloadJson
    string✓
    Exemple de corps
    {
      "Category": "vehicle",
      "PayloadJson": "string"
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Valid
    boolean
    Errors
    object✓
    Exemple de réponse
    {
      "Valid": false,
      "Errors": {}
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    ExternalKey
    string✓
    Category
    string✓
    vehiclefraudappraiserspecial
    Status
    string✓
    CreatedAssignedRejectedAcceptedInProgressExpertCompletedAdminApprovedAdminReturnedAdminCancelledFinal
    CreatedAt
    string(date-time)
    UpdatedAt
    string(date-time)
    ExpertComment
    string✓
    PayloadJson
    string✓
    ArchiveState
    boolean
    Expert
    M2MExpertDto
    HailDriveInAccepted
    boolean✓
    LastReportApprovedAt

    When the most recently APPROVED report for this claim was approved (null if no report has been approved yet). Poll this to detect that a new report is available without fetching each claim's reports individually. Filterable via the `lastReportApprovedSince` query parameter on the claims list.

    string(date-time)✓
    LastChangedAt

    Partner-sync cursor. Advances on every partner-visible change to the claim (report approval, document upload, expert comment, status change). On the next poll, pass the highest value you have seen as the `lastChangedSince` query parameter to fetch only what changed since.

    string(date-time)
    CostEstimateAmount

    Workshop cost estimate in CHF (null = not entered yet). Set by the expert via PUT /v1/experts/cases/{caseId}/amounts.

    number(double)✓
    ApprovedAmount

    Amount approved by the expert report in CHF (null = not entered yet).

    number(double)✓
    SavingsAmount

    Savings in CHF = CostEstimateAmount - ApprovedAmount; only when both are set and the estimate is higher, otherwise null.

    number(double)✓
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ExternalKey": "string",
      "Category": "vehicle",
      "Status": "Created",
      "CreatedAt": "2025-12-31T12:00:00Z",
      "UpdatedAt": "2025-12-31T12:00:00Z",
      "ExpertComment": "string",
      "PayloadJson": "string",
      "ArchiveState": false,
      "Expert": {
        "Name": "string",
        "Responsible": {
          "Name": "string",
          "Email": "string",
          "Phone": "string"
        }
      },
      "HailDriveInAccepted": false,
      "LastReportApprovedAt": "2025-12-31T12:00:00Z",
      "LastChangedAt": "2025-12-31T12:00:00Z",
      "CostEstimateAmount": 0,
      "ApprovedAmount": 0,
      "SavingsAmount": 0
    }

    Documents de sinistre

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MInsurerDocumentDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "FileName": "string",
          "ContentType": "string",
          "SizeBytes": 0,
          "CreatedAt": "2025-12-31T12:00:00Z"
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}
    Content-Typeapplication/json

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓

    Corps de la requête

    Request Schema
    Type : object
    ChampType RequisNullableEnum
    FileName
    string✓
    ContentType
    string✓
    ContentBase64
    string✓
    Exemple de corps
    {
      "FileName": "string",
      "ContentType": "string",
      "ContentBase64": "string"
    }
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    FileName
    string✓
    ContentType
    string✓
    SizeBytes
    integer(int64)
    CreatedAt
    string(date-time)
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "FileName": "string",
      "ContentType": "string",
      "SizeBytes": 0,
      "CreatedAt": "2025-12-31T12:00:00Z"
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓
    documentIdstring (uuid)✓
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Id
    string(uuid)
    FileName
    string✓
    ContentType
    string✓
    SizeBytes
    integer(int64)
    CreatedAt
    string(date-time)
    ContentBase64
    string✓
    Exemple de réponse
    {
      "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "FileName": "string",
      "ContentType": "string",
      "SizeBytes": 0,
      "CreatedAt": "2025-12-31T12:00:00Z",
      "ContentBase64": "string"
    }

    Rapports sur les sinistres

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MReportListItemDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "SequenceNo": 0,
          "RevisionNo": 0,
          "Status": "Draft",
          "Comment": "string",
          "SubmittedAt": "2025-12-31T12:00:00Z",
          "CreatedAt": "2025-12-31T12:00:00Z",
          "UpdatedAt": "2025-12-31T12:00:00Z"
        }
      ]
    }

    En-têtes

    Acceptapplication/json
    AuthorizationDPoP {access_token}
    DPoP{dpop_proof_jwt}

    Paramètres de chemin

    NomTypeRequisDéfaut
    claimIdstring (uuid)✓
    submissionIdstring (uuid)✓

    Paramètres de requête

    NomTypeRequisDéfaut
    pageinteger (int32)1
    sizeinteger (int32)50
    langstringde
    Schéma de réponse
    Type : object
    ChampType RequisNullableEnum
    Total
    integer(int32)
    Page
    integer(int32)
    Size
    integer(int32)
    Items
    array<M2MReportSubmissionDocumentContentDto>✓
    Exemple de réponse
    {
      "Total": 0,
      "Page": 0,
      "Size": 0,
      "Items": [
        {
          "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "SubmissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "ClaimId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "FileName": "string",
          "ContentType": "string",
          "SizeBytes": 0,
          "Kind": "string",
          "IsSalvageSale": false,
          "CreatedAt": "2025-12-31T12:00:00Z",
          "ContentBase64": "string"
        }
      ]
    }

    Structure du dossier & Validation

    Chaque catégorie décrit précisément quels champs le payloadJson peut contenir.

    Catégorie

    Expert automobile

    Cette structure est destinée aux charges utiles pour la catégorie Expert automobile.

    Contexte & Indices

    La catégorie de charge utile Expert automobile comprend 96 champs documentés ainsi que 50 champs obligatoires.

    Exigences de format
    5 spécificités
    Règles & Dépendances
    7 règles définies
    Actions & Liens
    Télécharger le schéma

    Tous les schémas sont disponibles sous forme de fichiers JSON et peuvent être importés directement dans des outils de validation.

    Cliquer pour copier

    payloadJson.insured.firstRegistration

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.counterparty.firstRegistration

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.incidentDate

    Date au format ISO AAAA-MM-JJ

    payloadJson.estimatedAmount

    Chaîne numérique sans signe (décimales optionnelles, point comme séparateur)

    payloadJson.inspectionDate

    Date au format ISO AAAA-MM-JJ

    Plausibilité des dates (toutes catégories)

    • •incidentDate ne doit pas être dans le futur.
    • •inspectionDate ne doit pas être dans le passé.
    • •firstRegistration et birthDate ne doivent pas être dans le futur — y compris dans insuredPersons[] et counterpartyPersons[].
    • •Le jour de référence est le jour courant à Europe/Zurich, avec un jour de tolérance dans chaque sens (compensation de fuseau horaire).

    Ces règles ne peuvent pas être exprimées en JSON Schema — celui-ci n'a aucune notion d'« aujourd'hui ». Elles n'apparaissent donc pas dans le téléchargement du schéma, mais sont appliquées côté serveur.

    Selon claimInsurance

    Si claimInsurance vaut liability, alors :

    • •Champs obligatoires : counterparty
    • •counterparty requiert name, phone, licensePlate, city, carMake

    Si claimInsurance est l'une des valeurs partial, comprehensive, alors :

    • •Champs obligatoires : insured
    • •insured requiert name, phone, licensePlate, address, postalCode, city, carMake

    Si claimInsurance vaut partial, alors :

    • •claimType doit être l'une des valeurs fire, natural_hazard, hail_damage, snow_slide, theft, animal_collision, marten_damage, glass_breakage, vandalism, assistance, falling_objects, parking_damage

    Selon inspectionType

    Si inspectionType vaut workshop, alors :

    • •Champs obligatoires : inspectionDate, workshop
    • •workshop requiert name, phone, city, postalCode, country
    • •workshop.country doit être l'une des valeurs CH, DE, AT, FR, IT, LI

    Si inspectionType est l'une des valeurs estimate_review, invoice_review, alors :

    • •Champs obligatoires : workshop
    • •workshop requiert name, phone

    Si inspectionType est l'une des valeurs private, live_expertise, alors :

    • •Champs obligatoires : inspectionDate, inspectionContact

    Selon inspectionContact

    Si le champ inspectionContact est présent, alors :

    • •inspectionContact requiert name, address, postalCode, city, phone, country
    • •inspectionContact.country doit être l'une des valeurs CH, DE, AT, FR, IT, LI

    Schéma de charge utile
    Type : object
    ChampType RequisNullableEnum
    policyNumber
    string✓
    claimInsurance
    string✓
    liabilitypartialcomprehensive
    claimType
    string✓
    insured
    object✓
    counterparty
    object
    location
    object✓
    incidentDate
    string✓
    damageDescription
    string✓
    estimatedAmount
    oneOf✓
    estimatedCurrency
    string✓
    CHFEURUSD
    inspectionType
    string✓
    workshopprivatelive_expertiseestimate_reviewinvoice_review
    workshop
    object
    inspectionContact
    object
    inspectionDate
    string,null
    remarks
    string,null

    Catégorie

    Expert

    Cette structure est destinée aux charges utiles pour la catégorie Expert.

    Contexte & Indices

    La catégorie de charge utile Expert comprend 64 champs documentés ainsi que 35 champs obligatoires.

    Exigences de format
    3 spécificités
    Règles & Dépendances
    4 règles définies
    Actions & Liens
    Télécharger le schéma

    Tous les schémas sont disponibles sous forme de fichiers JSON et peuvent être importés directement dans des outils de validation.

    Cliquer pour copier

    payloadJson.incidentDate

    Date au format ISO AAAA-MM-JJ

    payloadJson.estimatedAmount

    Chaîne numérique sans signe (décimales optionnelles, point comme séparateur)

    payloadJson.inspectionDate

    Date au format ISO AAAA-MM-JJ

    Plausibilité des dates (toutes catégories)

    • •incidentDate ne doit pas être dans le futur.
    • •inspectionDate ne doit pas être dans le passé.
    • •firstRegistration et birthDate ne doivent pas être dans le futur — y compris dans insuredPersons[] et counterpartyPersons[].
    • •Le jour de référence est le jour courant à Europe/Zurich, avec un jour de tolérance dans chaque sens (compensation de fuseau horaire).

    Ces règles ne peuvent pas être exprimées en JSON Schema — celui-ci n'a aucune notion d'« aujourd'hui ». Elles n'apparaissent donc pas dans le téléchargement du schéma, mais sont appliquées côté serveur.

    Selon claimInsurance

    Si claimInsurance vaut liability, alors :

    • •Champs obligatoires : counterparty
    • •insured requiert name
    • •counterparty requiert name, phone, city

    Si claimInsurance vaut own, alors :

    • •insured requiert name, phone, city

    Selon inspectionType

    Si inspectionType vaut onsite, alors :

    • •Champs obligatoires : inspectionDate, inspectionContact
    • •inspectionContact requiert name, postalCode, city, phone, country
    • •inspectionContact.country doit être l'une des valeurs CH, DE, AT, FR, IT, LI

    Selon inspectionContact

    Si le champ inspectionContact est présent, alors :

    • •inspectionContact requiert name, postalCode, city, phone, country
    • •inspectionContact.country doit être l'une des valeurs CH, DE, AT, FR, IT, LI

    Schéma de charge utile
    Type : object
    ChampType RequisNullableEnum
    policyNumber
    string✓
    claimInsurance
    string✓
    liabilityown
    claimType
    string✓
    buildinginfrastructurehousehold
    insured
    object✓
    counterparty
    object
    location
    object✓
    incidentDate
    string✓
    damageDescription
    string✓
    estimatedAmount
    oneOf✓
    estimatedCurrency
    string✓
    CHFEURUSD
    inspectionType
    string✓
    onsiteestimate_reviewinvoice_review
    inspectionDate
    string,null
    inspectionContact
    object
    remarks
    string,null

    Catégorie

    Lutte contre la fraude à l'assurance

    Cette structure est destinée aux charges utiles pour la catégorie Fraude à l'assurance.

    Contexte & Indices

    La catégorie de charge utile Lutte contre la fraude à l'assurance comprend 76 champs documentés ainsi que 25 champs obligatoires.

    Exigences de format
    7 spécificités
    Règles & Dépendances
    2 règles définies
    Actions & Liens
    Télécharger le schéma

    Tous les schémas sont disponibles sous forme de fichiers JSON et peuvent être importés directement dans des outils de validation.

    Cliquer pour copier

    payloadJson.insured.birthDate

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.counterparty.birthDate

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.insuredPersons[].birthDate

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.counterpartyPersons[].birthDate

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.incidentDate

    Date au format ISO AAAA-MM-JJ

    payloadJson.incidentTime

    Champ heure HH:MM (24h)

    payloadJson.estimatedAmount

    Chaîne numérique sans signe (décimales optionnelles, point comme séparateur)

    Plausibilité des dates (toutes catégories)

    • •incidentDate ne doit pas être dans le futur.
    • •inspectionDate ne doit pas être dans le passé.
    • •firstRegistration et birthDate ne doivent pas être dans le futur — y compris dans insuredPersons[] et counterpartyPersons[].
    • •Le jour de référence est le jour courant à Europe/Zurich, avec un jour de tolérance dans chaque sens (compensation de fuseau horaire).

    Ces règles ne peuvent pas être exprimées en JSON Schema — celui-ci n'a aucune notion d'« aujourd'hui ». Elles n'apparaissent donc pas dans le téléchargement du schéma, mais sont appliquées côté serveur.

    Selon driverAtIncident

    Si driverAtIncident est défini, alors :

    • •Assuré : Dans insured et insuredPersons[] au plus une personne peut être driverAtIncident = "yes" (ou aucune).
    • •Partie adverse : Dans counterparty et counterpartyPersons[] au plus une personne peut être driverAtIncident = "yes" (ou aucune).

    Selon claimInsurance

    Si claimInsurance vaut liability, alors :

    • •Champs obligatoires : counterparty
    • •counterparty requiert name, address, postalCode, city, phone, email

    Schéma de charge utile
    Type : object
    ChampType RequisNullableEnum
    policyNumber
    string✓
    claimInsurance
    string✓
    liabilitypartialcomprehensive
    claimType
    string✓
    insured
    object✓
    counterparty
    object
    insuredPersons
    array<object>
    counterpartyPersons
    array<object>
    location
    object✓
    incidentDate
    string✓
    incidentTime
    string,null
    damageDescription
    string✓
    estimatedAmount
    oneOf✓
    estimatedCurrency
    string✓
    CHFEURUSD
    supportRequest
    string✓
    remarks
    string,null

    Catégorie

    Expertises spéciales

    Cette structure est destinée aux charges utiles pour la catégorie Expertises spéciales.

    Contexte & Indices

    La catégorie de charge utile Expertises spéciales comprend 97 champs documentés ainsi que 59 champs obligatoires.

    Exigences de format
    5 spécificités
    Règles & Dépendances
    14 règles définies
    Actions & Liens
    Télécharger le schéma

    Tous les schémas sont disponibles sous forme de fichiers JSON et peuvent être importés directement dans des outils de validation.

    Cliquer pour copier

    payloadJson.insured.firstRegistration

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.counterparty.firstRegistration

    Date au format ISO AAAA-MM-JJ, vide ("") ou null

    payloadJson.incidentDate

    Date au format ISO AAAA-MM-JJ

    payloadJson.estimatedAmount

    Chaîne numérique sans signe (décimales optionnelles, point comme séparateur)

    payloadJson.inspectionDate

    Date au format ISO AAAA-MM-JJ

    Plausibilité des dates (toutes catégories)

    • •incidentDate ne doit pas être dans le futur.
    • •inspectionDate ne doit pas être dans le passé.
    • •firstRegistration et birthDate ne doivent pas être dans le futur — y compris dans insuredPersons[] et counterpartyPersons[].
    • •Le jour de référence est le jour courant à Europe/Zurich, avec un jour de tolérance dans chaque sens (compensation de fuseau horaire).

    Ces règles ne peuvent pas être exprimées en JSON Schema — celui-ci n'a aucune notion d'« aujourd'hui ». Elles n'apparaissent donc pas dans le téléchargement du schéma, mais sont appliquées côté serveur.

    Selon machineCategory

    Si machineCategory est l'une des valeurs rail_vehicle, aircraft, alors :

    • •claimInsurance doit être liability

    Si machineCategory vaut rail_vehicle, alors :

    • •machineType doit être l'une des valeurs gondola, train, tram, rack_railway

    Si machineCategory vaut aircraft, alors :

    • •machineType doit être l'une des valeurs glider, powered_aircraft, drone

    Si machineCategory vaut land_machine, alors :

    • •machineType doit être l'une des valeurs tractor, trailer, harvester, stationary_machine

    Si machineCategory vaut land_machine, alors :

    • •inspectionType doit être l'une des valeurs workshop, private, estimate_review, invoice_review

    Si machineCategory est l'une des valeurs rail_vehicle, aircraft, alors :

    • •inspectionType doit être l'une des valeurs onsite, estimate_review, invoice_review

    Si machineCategory est l'une des valeurs aircraft, land_machine et claimInsurance vaut liability, alors :

    • •Champs obligatoires : counterparty
    • •counterparty requiert make

    Si machineCategory vaut land_machine et claimInsurance est l'une des valeurs partial, comprehensive, alors :

    • •Champs obligatoires : insured
    • •insured requiert carMake

    Selon claimInsurance

    Si claimInsurance vaut liability, alors :

    • •Champs obligatoires : counterparty
    • •counterparty requiert name, phone, city

    Si claimInsurance est l'une des valeurs partial, comprehensive, alors :

    • •Champs obligatoires : insured
    • •insured requiert name, phone, address, postalCode, city

    Selon inspectionType

    Si inspectionType vaut workshop, alors :

    • •Champs obligatoires : inspectionDate, workshop
    • •workshop requiert name, phone, city, postalCode

    Si inspectionType est l'une des valeurs estimate_review, invoice_review, alors :

    • •Champs obligatoires : workshop
    • •workshop requiert name, phone

    Si inspectionType est l'une des valeurs private, onsite, alors :

    • •Champs obligatoires : inspectionDate, inspectionContact

    Selon inspectionContact

    Si le champ inspectionContact est présent, alors :

    • •inspectionContact requiert name, address, postalCode, city, phone

    Schéma de charge utile
    Type : object
    ChampType RequisNullableEnum
    policyNumber
    string✓
    claimInsurance
    string✓
    liabilitypartialcomprehensive
    claimType
    string✓
    machineCategory
    string✓
    rail_vehicleaircraftland_machine
    machineType
    string✓
    gondolatraintramrack_railwaygliderpowered_aircraftdronetractortrailerharvesterstationary_machine
    insured
    object✓
    counterparty
    object
    location
    object✓
    incidentDate
    string✓
    damageDescription
    string✓
    estimatedAmount
    oneOf✓
    estimatedCurrency
    string✓
    CHFEURUSD
    inspectionType
    string✓
    workshopprivateonsiteestimate_reviewinvoice_review
    workshop
    object
    inspectionContact
    object
    inspectionDate
    string,null
    remarks
    string,null

    Tester PayloadJson directement

    Envoyez une requête à l'API de validation Claimity et obtenez un retour immédiat sur votre charge utile.

    POST/v1/insurers/claims:validate
    application/json

    Attend une structure JSON valide.

    Réponse

    Prêt

    La réponse de l'API de validation apparaît ici.

    1. Sélectionner une catégorie
    2. Insérer le JSON de charge utile ou utiliser l'exemple
    3. Valider la charge utile
    Claimity Logo

    La plateforme numérique pour une gestion efficace des sinistres. Automatisée, transparente, sécurisée.

    Aide

    • Mode d'emploi
    • Intégration API
    • Assistance

    Entreprise

    • Site Web
    • Prendre rendez-vous

    Contact

    • info@claimity.ch
    • +41 78 344 77 36
    • Claimity SA
      Wisentalstrasse 7a
      8185 Winkel
      Suisse

    © 2026 Claimity SA. Tous droits réservés.

    Mentions légalesPolitique de confidentialitéConditions d'utilisation