GraphQL-Abfragen, das Party-Datenmodell und Beispiele. Abgestimmt auf die offizielle PSB-Schema-Referenz.
Der VPD-Dienst stellt einen GraphQL-Endpunkt bereit. Die vollständige, aktuelle Definition aller Abfragen und Typen steht in der offiziellen Schema Reference (partySchema) auf der PSB-Dokumentationsseite. Fragen Sie in GraphQL nur die Felder ab, die Sie brauchen. Die Erläuterung und die Beispiele unten sind eine praktische Zusammenfassung.
partyfindcompanysbinaceDetails und Typen für find, company, sbi und nace stehen in der Schema-Referenz.
party: ParametersearchidnamepostcodecitycountryNL oder BElangnlmaxResults10Sie können Parameter kombinieren, um die Suche einzugrenzen.
party (Kernfelder)idtypeisActivepreferredNamelegalNametradeNamesdescriptionidentifierssectorCodeslocationswebsiteeDeliveryhighlightsidentifiers: partyIdentifier und partyIdIdentifier stehen nicht mehr als flache type/value-Paare auf dem Objekt party. Sie verwenden identifiers: jeder Eintrag hat einen name (Label aus dem Schema, z. B. "KvK") und eine id vom Typ partyId mit unter anderem value, text, schemeIdText, schemeIdNumber und schemeAuthority. Alle Felder stehen in der Schema-Referenz.
Ein location hat unter anderem text (vollständig formatiertes Adresse), street, number, numberAddition, postcode, city, country (Objekt mit u. a. iso) und optional latitude / longitude.
eDeliveryDas Feld eDelivery gibt pro Kanal an, welche Dokumenttypen eine Partei empfangen oder senden kann, ohne dass Sie einen separaten SMP-Lookup ausführen müssen:
acceptsprovidesPro Dokumenttyp werden unter anderem channel (zum Beispiel Peppol), partyId (der Identifier auf diesem Kanal), listedName, documentName, documentTypeId, processId, family und kanalspezifische details zurückgegeben. Damit kann eine Integration in einem Aufruf prüfen, ob ein Empfänger einen bestimmten Dokumenttyp auf einem bestimmten Kanal akzeptiert.
{
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
}
}
findFür unscharfe oder unvollständige Angaben verwenden Sie find mit einem args-Objekt (siehe die Dokumentation für alle optionalen Felder, darunter 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
}
}
}
}
Verwenden Sie search für breite Textsuchen und name oder id für gezieltere Filter. Mit lang stellen Sie die Sprache der Textfelder ein (Standard Niederländisch). Begrenzen Sie das Ergebnis mit maxResults beim Testen. Prüfen Sie errors in der GraphQL-Antwort bei Syntax- oder Schemafehlern. Eine leere Liste bei party oder find bedeutet keinen Treffer, nicht zwingend einen Fehler.
Ja. Sie können zum Beispiel name zusammen mit city, postcode oder country verwenden, um Ergebnisse einzugrenzen. Die offizielle Parameterliste steht in der Schema-Referenz.
Über das Feld identifiers auf party. Wählen Sie name und die gewünschten Felder von id (z. B. value und text). Das ersetzt das ältere Muster mit einer flachen Liste partyIds { type value }.
Standardmäßig höchstens 10 Ergebnisse für party, sofern Sie maxResults nicht höher setzen. Für eine schnelle Prüfung reicht oft maxResults: 1.
Möchten Sie Abfragen interaktiv testen? Verwenden Sie den VPD Playground. Oder lesen Sie, wie Sie die VPD in Ihre Integration einbinden.
VPD Playground ausprobieren