Produktpartner

Produktpartner deiner Organisation — Versicherer, Banken, Fondsgesellschaften und sonstige Anbieter, deren Produkte du Customers vermittelst. Strukturell identisch zu Customers (gleiche Stammdaten-Felder, gleiche Sub-Resources), unter eigenem API-Pfad und eigener Scope-Familie `v3:products:*`.

Zuletzt geprüft: 14. September 2026

Übersicht

Ein Produktpartner ist die Gesellschaft/Bank/Fondsgesellschaft, die Produkte und Tarife anbietet — Allianz, AXA, DWS, Sparkasse Bayern und vergleichbare Anbieter. Im API-Pfad heißt die Ressource /v3/products, in der Doku und im UI nennen wir sie Produktpartner, weil sie nicht einzelne Tarife/Policen abbildet, sondern den vermittelnden Anbieter dahinter.

Produktpartner haben dieselben Stammdaten-Felder und Sub-Resources wie Customers (Adressen, Bankverbindungen, Kontaktdaten, …) plus zwei produktpartner-spezifische — Contact-Persons (Ansprechpartner beim Partner) und Portals (Maklerportal-Logins). Sie laufen unter eigenem API-Pfad und eigener Scope-Familie v3:products:*.

Seit Mai 2026 stehen am Produktpartner zusätzlich Aktivitäten und Links parent-scoped zur Verfügung — GET/POST /v3/products/{kid}/activities und GET/POST/DELETE /v3/products/{kid}/links[/{id}]. Update/Delete einzelner Aktivitäten laufen über die Top-Level-Route /v3/activities/{id} (v3:activities:*); Links nutzen die eigene Familie v3:products:*.

Scopes

Produktpartner-Stammdaten und direkte Sub-Resources verwenden v3:products:read|write. Dokumente und Aktivitäten behalten ihre eigenen Scopes:

Endpoint-FamilieScope
GET /v3/products / GET /v3/products/<kid>v3:products:read
POST /v3/productsv3:products:write
PATCH /v3/products/<kid>v3:products:write
DELETE /v3/products/<kid>v3:products:write
Direkte Sub-Resource GET-Endpointsv3:products:read
Direkte Sub-Resource POST/PATCH/DELETEv3:products:write
Dokumente unter /v3/products/{kid}/documentsv3:documents:read / v3:documents:write
Aktivitäten unter /v3/products/{kid}/activitiesv3:activities:read / v3:activities:write
Portale (eigene Doku-Page)v3:products:*
Ansprechpartner (eigene Doku-Page)v3:products:*

Auth-Mechanik und Fehler siehe Authentifizierung. Vollständige Scope-Referenz mit Token-Beispielen: Scopes.

Pagination & Limits

Identisch zu Customers > Pagination & Limits — page, limit, Default 50, Max 5000, Envelope { page, page_size, total, items }.

Schema

json
{
  "id": 67890,
  "name": "Allianz Versicherungs-AG",
  "kurzname": "Allianz",
  "kategorie": "versicherer",         // siehe select_fields.products.kategorien
  "vermittlernummer": "MAKLER-12345",
  "website": "https://www.allianz.de",
  "notiz": "Hauptansprechpartner Region Süd: …",
  "insert_datum": "2020-03-15",
  "edit_datum": "2024-06-15",

  // Sub-Resources — opt-in via `?with_*=true` (Default `false` seit Phase C)
  "addresses":       [ /* siehe /rest/v3/customers#addresses */ ],
  "contacts":        [ /* siehe /rest/v3/customers#contacts */ ],
  "banking":         [ /* siehe /rest/v3/customers#banking */ ],
  "contact_persons": [ /* siehe /rest/v3/contact-persons */ ],
  "portals":         [ /* siehe /rest/v3/portals */ ]
}

Endpoints

Verhalten und Response-Shapes sind wie bei Customers: Bei with_schema=true stehen Produktfelder unter fields.products, ihre Auswahllisten unter select_fields.products. Mit with_* eingebettete Daten erhalten eigene Gruppen, z. B. fields.addresses und select_fields.addresses. Für Detail-Beispiele zu Query-Parametern, Batch-POST und Soft-Delete siehe die entsprechenden Customer-Sektionen.

Produkte abfragen

Liefert paginierte Liste aller Produktpartner. Query-Parameter und Response-Envelope identisch zu Customers abfragen.

Einzelnen Produktpartner abrufen

GET/v3/products/<kid> Im Playground testen ↗

Verhalten wie Customer abrufen.

Produktpartner anlegen

Body folgt dem Customer-POST-Pattern — Single-Item oder Array (max. 100), per-item Transaktion, gescheiterte Items in failed[]. Pflicht-Feld: name. Sub-Resources im Body (Ansprechpartner, Portale) werden ignoriert — separate Endpoints nutzen.

bash
curl -X POST https://www.api.i-planner.app/v3/products \
  -H "Authorization: Bearer $IPLANNER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Allianz Versicherungs-AG",
    "kurzname": "Allianz",
    "kategorie": "versicherer",
    "vermittlernummer": "MAKLER-12345"
  }'

Response: 201 mit { success, id }. Mögliche Fehler: 400 missing_name (Pflicht-Feld fehlt), 400 invalid_kategorie (Kategorie nicht im Tenant-Schema, siehe Schema).

Produktpartner aktualisieren

PATCH/v3/products/<kid> Im Playground testen ↗

Verhalten wie Customer aktualisieren. Response: { success, updated }.

Produktpartner löschen

DELETE/v3/products/<kid> Im Playground testen ↗

Soft-Delete. Verhalten wie Customer löschen. Response: { success, soft_deleted, kid }.

Unterressourcen

Die folgenden Sub-Ressourcen folgen dem Customer-Pattern. Direkte Stammdaten und Annotationen verwenden v3:products:read|write; Dokumente verwenden v3:documents:read|write, Aktivitäten v3:activities:read|write. Schreiben erteilt nicht automatisch die Leseberechtigung.

Direkte Sub-ResourcePfadPattern
Addresses/v3/products/<kid>/addressesAddresses
Contacts/v3/products/<kid>/contactsContacts
Banking/v3/products/<kid>/bankingBanking
Nummern/v3/products/<kid>/numbersNummern
Comments/v3/products/<kid>/commentsComments
Documents/v3/products/<kid>/documentsDocuments
Followers/v3/products/<kid>/followersFollowers
Tags/v3/products/<kid>/tagsTags
Activities (List + Create scoped)/v3/products/<kid>/activitiessiehe Aktivitäten — Update/Delete top-level über /v3/activities/{id}
Links (List + Create + Delete scoped)/v3/products/<kid>/links[/<id>]siehe Links
Contact-Persons (List + Create scoped)/v3/products/<kid>/contact-personssiehe Ansprechpartner für Full-CRUD top-level
Portals (List + Create scoped)/v3/products/<kid>/portalssiehe Portale für Full-CRUD top-level
Section-Anhänge/v3/products/<kid>/<section>/<sectionId>/...generisches Anhang-Pattern

Nicht verfügbar an Produktpartnern: Identity, Jobs, Contracts, Damages, Finances, Goals — semantisch keine Anwendung am Produktpartner-Modell.