Schéma VPD : requêtes et modèle de données party

Requêtes GraphQL, modèle de données party et exemples. Aligné sur la référence de schéma PSB officielle.

Le service VPD expose un endpoint GraphQL. La définition complète et à jour de toutes les requêtes et de tous les types se trouve dans la Schema Reference (partySchema) officielle, sur le site de documentation PSB. En GraphQL, ne demandez que les champs dont vous avez besoin. L'explication et les exemples ci-dessous sont un résumé pratique.

Requêtes racine disponibles
RequêteObjectifpartyRechercher des parties ; résultats classés par pertinencefindCorrespondance au mieux lorsque les données sont incertaines ou incomplètes (tous les arguments sont optionnels)companyCodes de forme juridique / type d'entreprise pour un pays donnésbiCodes SBI (classification sectorielle néerlandaise)naceCodes NACE (classification UE)

Les détails et les types de find, company, sbi et nace figurent dans la référence de schéma.

La requête party : paramètres
ParamètreTypeDescriptionsearchStringRecherche libre sur tous les champsidStringRecherche par identifiant (par ex. registre du commerce, numéro de TVA ou eConnectId)nameStringRecherche par nom (d'entreprise)postcodeStringFiltre sur le code postalcityStringFiltre sur la villecountryStringCode pays, par ex. NL ou BElangStringLangue des résultats ; défaut nlmaxResultsIntNombre maximal de résultats ; défaut 10

Vous pouvez combiner les paramètres pour affiner la recherche.

Le type party (champs principaux)
ChampTypeDescriptionidStringIdentifiant eConnect de la partietypeStringType de partieisActiveBooleanIndique si la partie est activepreferredNameStringNom juridique s'il est disponible ; sinon le premier nom commerciallegalNameStringNom juridique confirmé (peut être vide s'il n'est pas établi avec certitude)tradeNamesStringNoms commerciauxdescriptionStringCourte description des activitésidentifierspartyIdentifierIdentifiants (registre, TVA, GLN, etc.)sectorCodesactivityCodes sectoriels (par ex. SBI/NACE)locationslocationÉtablissements / adresses connuswebsiteStringSite webeDeliveryeDeliveryCapacités de livraison électronique (dont les canaux Peppol)highlightshighlightFragments mis en évidence lors des résultats de recherche
identifiers : partyIdentifier et partyId

Les identifiants ne sont plus des paires plates type/value sur l'objet party. Vous utilisez identifiers : chaque entrée a un name (libellé du schéma, par ex. "KvK") et un id de type partyId avec notamment value, text, schemeIdText, schemeIdNumber et schemeAuthority. Tous les champs sont dans la référence de schéma.

Localisations

Un location comporte notamment text (adresse entièrement formatée), street, number, numberAddition, postcode, city, country (objet avec notamment iso) et, en option, latitude / longitude.

Le champ eDelivery

Le champ eDelivery indique, par canal, quels types de documents une partie peut recevoir ou envoyer, sans lookup SMP séparé :

Sous-champDescriptionacceptsListe des types de documents que la partie peut recevoirprovidesListe des types de documents que la partie peut envoyer

Pour chaque type de document, la réponse comprend notamment channel (par exemple Peppol), partyId (l'identifiant sur ce canal), listedName, documentName, documentTypeId, processId, family et des details propres au canal. Une intégration peut ainsi vérifier en un seul appel si un destinataire accepte un type de document donné sur un canal donné.

Exemples de requêtes
Organisation par nom
{
  party(name: "eConnect", country: "NL", maxResults: 5) {
    id
    preferredName
    legalName
    tradeNames
    identifiers {
      name
      id {
        value
        text
        schemeIdText
      }
    }
  }
}
Recherche par identifiant
{
  party(id: "12345678", maxResults: 1) {
    id
    preferredName
    legalName
    locations {
      text
      street
      postcode
      city
      country {
        iso
      }
      latitude
      longitude
    }
    website
  }
}
Recherche libre avec plus de détail
{
  party(search: "facturatie Woerden", maxResults: 10) {
    id
    type
    isActive
    preferredName
    legalName
    description
    identifiers {
      name
      id {
        value
        text
      }
    }
    sectorCodes {
      type
      value
      text
      description
    }
    locations {
      text
      postcode
      city
      country {
        iso
      }
    }
    website
  }
}
Saisie incertaine : find

Pour des données floues ou incomplètes, utilisez find avec un objet args (voir la documentation pour tous les champs optionnels, dont ids.legal, ids.vat, ids.iban, ids.oin, ids.gln).

{
  find(args: { name: "Gemeente", country: "NL", postcode: "3511" }) {
    eConnectId
    name
    address
    identifiers {
      name
      id {
        value
        text
      }
    }
  }
}
Conseils pour une recherche efficace

Utilisez search pour des recherches textuelles larges et name ou id pour des filtres plus ciblés. Avec lang, vous définissez la langue des champs textuels (néerlandais par défaut). Limitez le résultat avec maxResults pendant les tests. Contrôlez errors dans la réponse GraphQL en cas d'erreur de syntaxe ou de schéma. Une liste vide pour party ou find signifie aucun résultat, pas forcément une erreur.

Questions fréquentes
Puis-je combiner plusieurs paramètres de recherche dans une seule requête `party` ?

Oui. Vous pouvez par exemple utiliser name avec city, postcode ou country pour affiner les résultats. La liste officielle des paramètres est dans la référence de schéma.

Comment demander les identifiants ?

Via le champ identifiers sur party. Sélectionnez name et les champs souhaités de id (par ex. value et text). Cela remplace l'ancien motif avec une liste plate partyIds { type value }.

Quel est le nombre maximal de résultats par requête ?

Par défaut, au plus 10 résultats pour party, sauf si vous augmentez maxResults. Pour une validation rapide, maxResults: 1 suffit souvent.


Vous souhaitez tester des requêtes de manière interactive ? Utilisez le VPD Playground. Ou lisez comment intégrer le VPD dans votre application.

Essayer le VPD Playground