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.
partyfindcompanysbinaceLes détails et les types de find, company, sbi et nace figurent dans la référence de schéma.
party : paramètressearchidnamepostcodecitycountryNL ou BElangnlmaxResults10Vous pouvez combiner les paramètres pour affiner la recherche.
party (champs principaux)idtypeisActivepreferredNamelegalNametradeNamesdescriptionidentifierssectorCodeslocationswebsiteeDeliveryhighlightsidentifiers : partyIdentifier et partyIdLes 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.
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.
eDeliveryLe champ eDelivery indique, par canal, quels types de documents une partie peut recevoir ou envoyer, sans lookup SMP séparé :
acceptsprovidesPour 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é.
{
party(name: "eConnect", country: "NL", maxResults: 5) {
id
preferredName
legalName
tradeNames
identifiers {
name
id {
value
text
schemeIdText
}
}
}
}
{
party(id: "12345678", maxResults: 1) {
id
preferredName
legalName
locations {
text
street
postcode
city
country {
iso
}
latitude
longitude
}
website
}
}
{
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
}
}
findPour 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
}
}
}
}
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.
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.
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 }.
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