Esimene ELi DPP tähtaeg (Akud): 130 päeva Tagage vastavus kohe
Keel
EN DE FR IT ES NL PL BG CS DA EL ET FI HR HU LT LV MT PT RO SK SL SV
Toode
Funktsioonid Müügijärgne teenindus Kuidas see toimib Demo Enterprise Hinnad
Sektorid
Kõik sektorid Tekstiilid Elektroonika Akud
Ressursid
Blogi Võrdle DPP tarkvara Riikide nõuded Valmisoleku hindamine Keskkonnaväidete kontroll Tasuta allalaadimised Sõnastik
Ettevõte
Partnerid Kontakt
Logi sisse Alusta tasuta
Arendajad / REST API

API viide

Kõik MyProductPassportis on saadaval võtmega autenditud REST API kaudu: looge tooteid, genereerige ja avaldage digitaalseid tootepasse, saatke reaalajas akuandmeid ja kontrollige vastavust otse oma ERP-, PIM- või ehitustorustikust.

v1 https://myproductpassport.eu/api/v1 Alusta tasuta OpenAPI spetsifikatsioon ↓

01 / AlustamineAutentimine

Iga päring autenditakse Bearer-tõendina edastatud API-võtmega. Võtmed luuakse rakenduses jaotises API-võtmed, neid näidatakse üks kord ja hoitakse räsituna; igal võtmel on oma õiguste komplekt, valikuline lubatud IP-de loend ja valikuline aegumiskuupäev. Võtmeid saab vahetada ilma katkestuseta.

Päringu päis
Authorization: Bearer pk_your_api_key
Igas paketis. API-võtmeid saab luua ja kasutada igas paketis, ka tasuta paketis. Pakett määrab, mitu päringut minutis võti teha võib (allpool) ning mitu toodet ja passi tööruumis olla võib.
Testrežiim. Testvõti (pk_test_...) täidab iga päringu täpselt nagu tootmisvõti, sama valideerimise, ID-de ja vastustega, ning tühistab selle seejärel: midagi ei salvestata, e-kirju ega veebihaake ei saadeta ja faile ei säilitata. Vastused sisaldavad välja "test_mode": true ja päist X-MPP-Mode: test. Looge ja testige integratsiooni oma tegelike andmetega ning võtke seejärel kasutusele tootmisvõti.

Õigused antakse võtme kaupa, nii et integratsioon saab ainult seda, mida vajab:

ÕigusÕigused
products:readToodete lugemine
products:writeToodete loomine, muutmine ja kustutamine
passports:readPasside lugemine
passports:writeLoo passid
passports:publishPasside avaldamine ja arhiveerimine
webhooks:manageVeebikonksude otspunktide loomine, testimine ja eemaldamine
items:readRead individual items and their history
items:writeAdd, update and flag individual items
aftersales:readRead owner registrations and service requests
aftersales:writeUpdate service requests and reply to customers

02 / AlustaminePäringute limiidid

Limiidid kehtivad võtme ja minuti kohta ning sõltuvad paketist:

PakettPäringuid / minutis
Tasuta30
Micro60
E-silt60
Starter120
Professional300
Business600
Battery600

Iga vastus sisaldab päiseid X-RateLimit-Limit ja X-RateLimit-Remaining. Limiidi ületamisel tagastatakse 429:

429 Too Many Requests
{ "error": "Rate limit exceeded.", "limit": 300, "retry_after": 60 }

03 / AlustamineVead

Vead on JSON-vormingus tavapärase olekukoodiga. Levinumad:

OlekTähendusNäidissisu
401Puuduv, kehtetu, tühistatud või aegunud võti{"error": "Invalid or revoked API key."}
403Võtmel puudub õigus, IP-aadress ei ole lubatud loendis või paketi piir on täis{"message": "API key does not have 'products:write' permission."}
404Ressurssi teie tööruumis ei ole{"message": "Not found."}
422Valideerimine ebaõnnestus{"message": "…", "errors": {"gtin": ["…"]}}
429Päringute limiit ületatud{"error": "Rate limit exceeded."}

04 / AlustamineLehekülgedeks jagamine

Loendi lõpp-punktid tagastavad 25 kirjet lehe kohta koos standardsete objektidega links ja meta. Kogus liikumiseks lisage ?page=2.

05 / AlustamineTehisintellekti assistendi ühendus (MCP)

Ühendage Claude, Cursor või mõni muu Model Context Protocoli toetav assistent ja paluge tal lihtsate sõnadega luua tooteid, täita passe teie öeldu põhjal ja kontrollida, mis veel puudu on. See kasutab API-võtit selle õiguste ja päringupiiriga. See saab luua mustandeid ja täita välju; see ei avalda, arhiveeri ega kustuta kunagi midagi: see jääb teile rakenduses.

Serveri aadress (Streamable HTTP)
https://myproductpassport.eu/api/mcp
Claude Code
claude mcp add --transport http myproductpassport https://myproductpassport.eu/api/mcp \
  --header "Authorization: Bearer pk_live_your_key"
Cursor (mcp.json)
{
  "mcpServers": {
    "myproductpassport": {
      "url": "https://myproductpassport.eu/api/mcp",
      "headers": { "Authorization": "Bearer pk_live_your_key" }
    }
  }
}
Claude Desktop ja muud kliendid, mis käivitavad kohaliku serveri
{
  "mcpServers": {
    "myproductpassport": {
      "command": "npx",
      "args": ["mcp-remote", "https://myproductpassport.eu/api/mcp", "--header", "Authorization: Bearer pk_live_your_key"]
    }
  }
}

Pakutavad tööriistad:

TööriistMida see teeb
list_productsTööruumi tooted, uuemad eespool, 25 lehel, koos sektori ja viimase passiga.
get_productÜks toode koos andmete, sektori, regulatiivsete jaotiste ja viimase passiga.
list_sectorsSektorimallid, mida toode saab kasutada (tekstiil, elektroonika, akud, vein ja muu), koos nende ID-dega. Toote sektor määrab, millised passi väljad on kohustuslikud.
create_productLisab tööruumi toote. Kasutage list_sectors väljundist sector_id väärtust. compliance_sections lisab passile regulatiivsed jaotised: gpsr, epr, france, chemicals, eudr.
list_passportsTööruumi passid, uuemad eespool, 25 lehel, koos oleku (draft, published, archived), täielikkuse protsendi ja avaliku aadressiga.
get_passportÜks pass: olek, versioon, täielikkuse protsent, avalik aadress ja QR-koodi lingid.
create_passportLoob tootele passi mustandi. Seda ei avaldata: selle avaldab inimene rakenduses.
get_passport_fieldsMida pass nõuab: kohustuslike ja valikuliste väljade võtmed, iga välja tähendus (silt, kirjeldus, näide), olemasolevad väärtused ja puuduvad kohustuslikud väljad.
update_passport_fieldsKirjutab väljade väärtused mustandisse või avaldatud passi (avaldatud pass uuendatakse kohapeal: sama aadress, sama QR-kood). Võtmed get_passport_fields väljundist; tühi tekst eemaldab väärtuse. Kirjutage ainult fakte, mida kasutaja või tema dokumendid esitavad.
get_compliancePassi täielikkus: protsent, olek ja veel puuduvad kohustuslikud väljad.
Proovige testvõtmega. Testvõtmega (pk_test_...) assistendi muudatused kontrollitakse ja seejärel tühistatakse, nii et näete, mida see teeks, enne kui annate talle päris võtme.

06 / Lõpp-punktidKonto

GET /me

Tagastab autenditud konto, selle tellimuse taseme ja kui suur osa toodete limiidist on kasutatud. Kasulik ühenduse kontrollimiseks.

Päring
curl https://myproductpassport.eu/api/v1/me \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": {
    "id": 42,
    "name": "Jane Doe",
    "email": "[email protected]",
    "company_name": "Acme Ltd",
    "subscription_tier": "professional",
    "product_count": 128,
    "product_limit": 500,
    "passport_count": 96,
    "organization": {"id": 7, "name": "Acme Ltd"},
    "api_key": {"name": "ERP sync", "permissions": ["*"], "rate_limit_per_minute": 1000, "expires_at": null},
    "webhooks_available": true
  }
}

07 / Lõpp-punktidTooted

GET /products nõuab products:read

Loetleb teie tööruumi tooted, uusimad eespool, 25 lehe kohta. Iga toode sisaldab oma sektorit ja viimase passi kokkuvõtet.

ParameeterTüüpKirjeldus
pageintegerLehekülje number.
Päring
curl "https://myproductpassport.eu/api/v1/products?page=1" \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": [
    {
      "id": 512,
      "name": "Alpine Merino Crew Sweater",
      "sku": "AM-CREW-01",
      "gtin": "05012345678900",
      "brand": "Northloom",
      "category": "textiles",
      "status": "active",
      "country_of_origin": "PT",
      "weight": 0.4,
      "weight_unit": "kg",
      "materials": [
        { "name": "Merino wool (RWS)", "percentage": 78 },
        { "name": "Recycled nylon (GRS)", "percentage": 20 },
        { "name": "Elastane", "percentage": 2 }
      ],
      "sector": { "id": 3, "name": "Textiles" },
      "latest_passport": {
        "id": 96, "version": 1,
        "status": "published", "compliance_percentage": 100
      },
      "created_at": "2026-08-14T09:21:00+00:00",
      "updated_at": "2026-09-01T16:02:11+00:00"
    }
  ],
  "links": { "next": null },
  "meta": { "current_page": 1, "per_page": 25, "total": 1 }
}
POST /products nõuab products:write

Loob ühe toote. Tagastab 403, kui paketi toodete limiit on täis.

ParameeterTüüpKirjeldus
namestringnõutavToote nimi, kuni 255 tähemärki.
skustringTeie sisemine SKU, kuni 100 tähemärki.
gtinstringGTIN-8, 12, 13 või 14 (ainult numbrid).
brandstringAvalikul passil kuvatav kaubamärk.
descriptionstringKuni 2000 tähemärki.
categorystringVabatekstiline kategooria. Vaikimisi "general".
sector_idintegerSektori ID, mis valib passi väljade malli.
country_of_originstringRiigikood, nt "PT".
weightnumberNetokaal.
weight_unitstringÜks väärtustest kg, g, lb, oz. Vaikimisi kg.
materialsarrayObjektid {name, percentage 0-100}.
has_packagingbooleanLisab passile pakendimalli väljad (võtmed algavad pkg_), sama QR-koodi alla.
Päring
curl -X POST https://myproductpassport.eu/api/v1/products \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alpine Merino Crew Sweater",
    "sku": "AM-CREW-01",
    "gtin": "05012345678900",
    "sector_id": 3,
    "materials": [
      {"name": "Merino wool (RWS)", "percentage": 78},
      {"name": "Recycled nylon (GRS)", "percentage": 22}
    ]
  }'
Vastus
{
  "data": {
    "id": 513,
    "name": "Alpine Merino Crew Sweater",
    "sku": "AM-CREW-01",
    "status": "active",
    "sector": { "id": 3, "name": "Textiles" },
    "created_at": "2026-09-07T18:40:00+00:00"
  }
}
POST /products/bulk nõuab products:write

Loob ühe päringuga kuni 100 toodet. Kogu partii lükatakse koodiga 403 tagasi, kui see ületaks teie järelejäänud toodete limiiti. Tuhandete toodetega kataloogide puhul kutsuge seda lõpp-punkti tsüklis või kasutage rakenduses CSV-importi.

ParameeterTüüpKirjeldus
productsarraynõutav1–100 tooteobjekti samade väljadega nagu „Loo toode“ (ilma materjalideta).
Päring
curl -X POST https://myproductpassport.eu/api/v1/products/bulk \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {"name": "PSL-BT-122000", "sku": "PSL-BT-122000", "sector_id": 5},
      {"name": "PSL-BT-123000", "sku": "PSL-BT-123000", "sector_id": 5}
    ]
  }'
Vastus
{
  "message": "2 product(s) created.",
  "products": [
    { "id": 514, "name": "PSL-BT-122000", "status": "active" },
    { "id": 515, "name": "PSL-BT-123000", "status": "active" }
  ]
}
GET /products/{id} nõuab products:read

Tagastab ühe toote koos selle sektori ja viimase passi kokkuvõttega. 404, kui ID pole teie tööruumis.

Päring
curl https://myproductpassport.eu/api/v1/products/512 \
  -H "Authorization: Bearer pk_your_key"
PUT /products/{id} nõuab products:write

Uuendab toodet osaliselt. Saatke ainult väljad, mida soovite muuta; väljade loend on sama mis Loo toode.

Päring
curl -X PUT https://myproductpassport.eu/api/v1/products/512 \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"brand": "Northloom"}'
DELETE /products/{id} nõuab products:write

Kustutab toote taastatavalt. Toote avaldatud passid töötavad edasi, nii et prinditud QR-koodid ei jää kunagi ilma lehte.

Päring
curl -X DELETE https://myproductpassport.eu/api/v1/products/512 \
  -H "Authorization: Bearer pk_your_key"
Vastus
{ "message": "Product deleted." }

08 / Lõpp-punktidPassid

GET /passports nõuab passports:read

Loetleb passid, uusimad eespool, 25 lehe kohta, koos tootekokkuvõtte ja kõigi passiväljadega.

ParameeterTüüpKirjeldus
pageintegerLehekülje number.
Päring
curl https://myproductpassport.eu/api/v1/passports \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": [
    {
      "id": 96,
      "uuid": "36ff3776-d517-4228-8cde-9208136ea84a",
      "version": 1,
      "status": "published",
      "compliance_status": "compliant",
      "compliance_percentage": 100,
      "public_url": "https://myproductpassport.co.uk/p/36ff3776-…",
      "gs1_url": "https://myproductpassport.co.uk/01/05012345678900",
      "product": { "id": 512, "name": "Alpine Merino Crew Sweater", "sku": "AM-CREW-01" },
      "fields": [
        { "key": "material_composition", "value": "…", "verification_status": "verified" }
      ],
      "published_at": "2026-08-16T10:00:00+00:00"
    }
  ],
  "meta": { "current_page": 1, "per_page": 25, "total": 1 }
}
POST /products/{productId}/passports nõuab passports:write

Loob tootele passimustandi, eeltäites väljad tooteandmetest ja sektori mallist. Tagastab mustandi koos selle vastavusskooriga. Kui tootel on juba aktiivne pass, tagastatakse 409 koos selle passiga: parandage seda päringuga PUT /passports/{id}/fields, mis säilitab selle aadressi ja QR-koodi.

Päring
curl -X POST https://myproductpassport.eu/api/v1/products/512/passports \
  -H "Authorization: Bearer pk_your_key"
GET /passports/{id} nõuab passports:read

Tagastab ühe passi koos toote, väljade, avaliku URL-i ja GS1 Digital Linkiga.

Päring
curl https://myproductpassport.eu/api/v1/passports/96 \
  -H "Authorization: Bearer pk_your_key"
POST /passports/{id}/publish nõuab passports:publish

Avaldab passimustandi, tehes selle avaliku lehe ja QR-koodi kättesaadavaks. Avaldada saab ainult mustandeid; kõige muu puhul tagastatakse 404.

Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/publish \
  -H "Authorization: Bearer pk_your_key"
POST /passports/{id}/archive nõuab passports:publish

Arhiveerib passi ja eemaldab selle avaliku lehe kasutusest.

Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/archive \
  -H "Authorization: Bearer pk_your_key"
POST /passports/bulk-publish nõuab passports:publish

Avaldab ühe päringuga kuni 50 passimustandit ja annab tulemused passide kaupa, nii et üks tõrge ei katkesta kunagi kogu partiid.

ParameeterTüüpKirjeldus
passport_idsarraynõutav1–50 passi ID-d.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/bulk-publish \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"passport_ids": [96, 97, 98]}'
Vastus
{
  "published": 2,
  "failed": 1,
  "published_ids": [96, 97],
  "errors": [
    { "id": 98, "error": "Compliance below the publishing threshold." }
  ]
}
POST /passports/{id}/successor nõuab passports:write

Korduskasutuseks ette valmistatud, ümber kasutatud või taastoodetud toote puhul nõuab akumäärus (artikli 77 lõige 7) uut passi, mis on seotud algsega. See loob uue tootekirje ja passimustandi, mis on eeltäidetud avaldatud passist ja lingitud selle juurde. Algne pass jääb aktiivseks ja mõlemad passid näitavad linki. Avaldage uus pass päringuga POST /passports/{id}/publish.

ParameeterTüüpKirjeldus
stagestringnõutavprepared_for_reuse, repurposed või remanufactured.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/successor \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "stage": "repurposed" }'
Vastus
{
  "data": {
    "id": 131, "status": "draft", "version": 1,
    "lineage": {
      "stage": "repurposed",
      "original": { "id": 96, "url": "https://myproductpassport.co.uk/p/..." },
      "originals": [{ "passport_id": 96, "product_id": 40, "stage": "repurposed", "status": "published", "url": "https://myproductpassport.co.uk/p/..." }],
      "successors": []
    }
  }
}
GET /passports/{id}/fields nõuab passports:read

Tagastab väljavõtmed, mida passi sektori mall nõuab (kohustuslikud ja valikulised), hetkel talletatud väärtused ja puuduolevad kohustuslikud võtmed. Kasutage seda PUT /passports/{id}/fields sisu koostamiseks.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/fields \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "passport_id": 96,
  "sector": "batteries",
  "compliance_percentage": 84,
  "required": ["battery_category", "carbon_footprint", "..."],
  "optional": ["energy_round_trip_efficiency", "..."],
  "missing_required": ["carbon_footprint_class", "recycled_content"],
  "values": { "battery_category": "Industrial", "...": "..." }
}
PUT /passports/{id}/fields nõuab passports:write

Kirjutab mis tahes väljaväärtuste komplekti mustandisse või avaldatud passi: aku jaoks kogu XIII lisa komplekti, sektorimalli väljad või teie enda võtmed. Saatke ainult võtmed, mida soovite muuta; null või tühi väärtus eemaldab välja. Avaldatud passi uuendatakse kohapeal, selle aadress ja QR-kood ei muutu ning masintõlked genereeritakse uuesti. Vastavus hinnatakse uuesti. Mustandit see päring ei avalda; kasutage POST /passports/{id}/publish.

ParameeterTüüpKirjeldus
fieldsobjectnõutavVäljavõtme ja väärtuse vastavus. Võtmed on väiketähed, numbrid ja alakriipsud; väärtused kuni 5000 tähemärki. Kuni 200 võtit päringu kohta.
Päring
curl -X PUT https://myproductpassport.eu/api/v1/passports/96/fields \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": {
      "carbon_footprint": "61.2 kg CO2e/kWh",
      "carbon_footprint_class": "C",
      "recycled_content": "Cobalt 16%, lithium 6%, nickel 6%, lead 0%"
    }
  }'
Vastus
{
  "message": "3 field(s) changed, 0 removed.",
  "changed": ["carbon_footprint", "carbon_footprint_class", "recycled_content"],
  "removed": [],
  "passport": { "id": 96, "status": "published", "compliance_percentage": 92 }
}
POST /passports/{id}/state-of-health nõuab passports:write

Saadab selle aku enda andmed (määruse (EL) 2023/1542 XIII lisa punkt 4) avaldatud passile, BMS- ja autopargisüsteemide jaoks. Saatke mis tahes alamhulk allolevatest väljadest; vastavust kontrollitakse pärast uuendust uuesti. Neid väärtusi näidatakse ainult passi omaniku kinnitatud vaatajatele (artikli 77 lõige 2), mitte kunagi avalikul lehel. capacity_fade, power_capability ja internal_resistance salvestatakse selle aku praeguste näitudena (current_*), eraldi mudeli algväärtustest.

ParameeterTüüpKirjeldus
state_of_healthstringnt "97% 412 tsükli juures".
state_of_certified_energystringJärelejäänud sertifitseeritud energia (elektrisõidukite akud).
battery_statusstringoriginal, repurposed, re-used, remanufactured või waste.
capacity_fadestringSenine mahtuvuse vähenemine. Salvestatakse kui current_capacity_fade.
power_capabilitystringPraegune võimsusvõime. Salvestatakse kui current_power_capability.
internal_resistancestringMõõdetud sisetakistus. Salvestatakse kui current_internal_resistance.
use_datastringTsüklid, negatiivsed sündmused, temperatuur ja laetuse tase, kuni 5000 tähemärki.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/state-of-health \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "state_of_health": "97% at 412 cycles",
    "capacity_fade": "3% from initial rated capacity"
  }'
Vastus
{
  "message": "2 field(s) updated.",
  "updated_fields": ["state_of_health", "current_capacity_fade"],
  "passport": { "id": 96, "status": "published", "compliance_percentage": 100 }
}
POST /passports/{id}/units nõuab passports:write

Iga aku vajab oma passi (määrus (EL) 2023/1542, artikli 77 lõige 1). Registreerige ühe päringuga kuni 10 000 ühe mudeli akut, igaüks oma seerianumbriga (kuni 20 tähte, numbrit, punkti, sidekriipsu või alakriipsu) ning soovi korral manufacturing_date, battery_status ja XIII lisa punkti 4 andmetega. Olemasolevad seerianumbrid uuendatakse; välja jäetud väärtused säilivad. Kui tootel on GTIN, on iga aku aadressiks selle GS1 Digital Link, /01/{gtin}/21/{serial}. Punkti 4 andmeid näidatakse ainult omaniku kinnitatud vaatajatele.

ParameeterTüüpKirjeldus
units[].serialstringnõutavAku seerianumber.
units[].manufacturing_datestringKuu ja aasta, nt "2026-09".
units[].battery_statusstringoriginal või waste. Oleku muutumisel on vaja sel hetkel mõõdetud väärtusi (XIII lisa punkti 4 alapunkt a); waste puhul on vaja ka välju responsible_party_type (producer, pro või waste_operator), responsible_party_name ja responsible_party_contact (artikli 77 lõige 7). recycled koos väljadega recycled_at ja recycler_name lõpetab passi (artikli 77 lõige 8). Ümberotstarbestatud, korduskasutatud või ümbertöödeldud aku saab uue passi: POST /passports/{id}/units/{serial}/successor.
units[].state_of_healthstringSamuti state_of_certified_energy, current_capacity_fade, current_power_capability, current_internal_resistance, remaining_capacity_ah, power_fade, internal_resistance_increase, round_trip_efficiency, round_trip_efficiency_fade, expected_lifetime_cycles_remaining, self_discharge_rate, ohmic_resistance ja use_data.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/units \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"units": [{"serial": "KES-00001", "manufacturing_date": "2026-09", "state_of_health": "100%"}]}'
Vastus
{ "created": 1, "updated": 0, "skipped": 0, "errors": [] }
PATCH /passports/{id}/units/{serial} nõuab passports:write

Akuhaldussüsteemile, mis saadab ühe aku andmeid: mis tahes järgmistest: battery_status, state_of_health, state_of_certified_energy, current_capacity_fade, current_power_capability, current_internal_resistance ja use_data. Lugemiseks kasutage GET-päringut samale teele või loendi jaoks GET /passports/{id}/units (per_page kuni 500).

Päring
curl -X PATCH https://myproductpassport.eu/api/v1/passports/96/units/KES-00001 \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"state_of_health": "96% at 412 cycles"}'
Vastus
{
  "data": { "serial": "KES-00001", "public_url": "https://myproductpassport.co.uk/01/05012345678900/21/KES-00001", "battery_status": "original", "data": { "state_of_health": "96% at 412 cycles" } }
}
GET /passports/{id}/units/{serial}/snapshots nõuab passports:read

XIII lisa punkti 4 alapunkt a nõuab jõudlus- ja vastupidavusväärtusi aku turule laskmisel ja selle oleku muutumisel. Need näidud säilitatakse muutmata kujul, olenemata sellest, mida hiljem saadetakse; perioodilise näidu säilitamiseks saatke PATCH-päringuga ka record_snapshot: true.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/units/KES-00001/snapshots \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": [
    { "event": "placed_on_market", "status": "original", "values": { "state_of_health": "100%" }, "measured_at": "2026-09-26T09:00:00+00:00", "source": "api" },
    { "event": "status_change", "status": "waste", "values": { "remaining_capacity_ah": "71 Ah", "power_fade": "14%", "internal_resistance_increase": "22%", "expected_lifetime_cycles_remaining": "0" }, "measured_at": "2029-03-02T10:00:00+00:00", "source": "bms" }
  ]
}
POST /passports/{id}/units/{serial}/successor nõuab passports:write

Artikli 77 lõige 7: korduskasutuseks ette valmistatud, ümberotstarbestatud või ümbertöödeldud akul on uus pass, mis on lingitud algse aku passiga. See registreerib aku uuesti uue seerianumbri ja identifikaatoriga teie tööruumi teise elu akumudeli all (kui seda veel pole, luuakse see sellest mudelist), lingib need kaks ja säilitab muutmise ajal mõõdetud väärtused. Algne aku säilitab oma passi. Täitke ja avaldage teise elu mudel päringuga POST /passports/{id}/publish.

ParameeterTüüpKirjeldus
stagestringnõutavprepared_for_reuse, repurposed või remanufactured.
valuesobjectnõutavMuutuse ajal mõõdetud väärtused: vähemalt üks väärtustest remaining_capacity_ah või current_capacity_fade, current_power_capability või power_fade, current_internal_resistance või internal_resistance_increase ning expected_lifetime_cycles_remaining (IV lisa A osa).
serialstringUus seerianumber. Vaikimisi: algne seerianumber koos järelliitega -RU, -RP või -RM.
measured_atstringMillal väärtused mõõdeti.
member_statestringSelle liikmesriigi kahetäheline kood, kus tervislikku seisundit testiti (artikli 73 lõike 1 punkt a).
target_passport_idintegerSelle akumudeli olemasolev teise elu mudel, mille alla see registreerida.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/units/KES-00001/successor \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"stage": "repurposed", "values": {"remaining_capacity_ah": "82 Ah", "power_fade": "9%", "internal_resistance_increase": "15%", "expected_lifetime_cycles_remaining": "2000"}}'
Vastus
{
  "data": {
    "serial": "KES-00001-RP", "battery_status": "repurposed", "passport_id": 131,
    "lineage": { "originals": [{ "serial": "KES-00001", "passport_id": 96, "stage": "repurposed" }], "successors": [] }
  }
}
POST /passports/{id}/registry nõuab passports:write

Salvestab passile ELi DPP registrisse esitamise ja selle tulemuse: oleku, korrelatsiooni-ID, registri tagastatud registreerimistunnuse ja valikulise lingi DPP teenusepakkuja hostitud varukoopiale. Registreerimine ise toimub komisjoni registris (veebivorm või faili üleslaadimine); see hoiab tulemuse passi juures. GET /passports/{id} tagastab sama ploki välja registry all.

ParameeterTüüpKirjeldus
statusstringnot_submitted, submitted, registered või failed.
product_groupstringRegistri tooterühm, näiteks batteries.
granularitystringmudel, partii või üksus.
upistringKordumatu tootetunnus https-URL-ina. Vaikimisi avaliku passi URL.
correlation_idstringRegistri poolt esitamisel määratud korrelatsiooni-ID.
uristringRegistri tagastatud registreerimistunnus.
backup_urlstringhttps-link DPP teenusepakkuja majutatud varukoopiale.
submitted_atdateEsitamise kuupäev.
registered_atdateRegistreerimise kuupäev.
errorstringEbaõnnestunud esitamise veakirjeldus.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/registry \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "registered",
    "correlation_id": "7f3a2c1e-0b4d-4f8e-9a6b-2d1c3e4f5a6b",
    "uri": "urn:eu:dpp:reg:00000001",
    "registered_at": "2027-02-18"
  }'
Vastus
{
  "message": "Registry details updated.",
  "passport": {
    "id": 96,
    "registry": {
      "status": "registered",
      "upi": "https://myproductpassport.co.uk/p/552fbb4e-5d9a-41da-9050-cc9005d8b66b",
      "correlation_id": "7f3a2c1e-0b4d-4f8e-9a6b-2d1c3e4f5a6b",
      "uri": "urn:eu:dpp:reg:00000001",
      "registered_at": "2027-02-18T00:00:00+00:00"
    }
  }
}
GET /passports/{id}/qr nõuab passports:read

Passi QR-kood failina: svg (vaikimisi), png (brändiga, trükivalmis) või pdf (etiketileht).

ParameeterTüüpKirjeldus
formatstringsvg | png | pdf
Päring
curl "https://myproductpassport.eu/api/v1/passports/96/qr?format=png" \
  -H "Authorization: Bearer pk_your_key" -o passport-96.png

09 / Lõpp-punktidVastavus

GET /passports/{passportId}/compliance nõuab passports:read

Teeb passile reaalajas vastavuskontrolli selle sektori kohustuslike väljade suhtes ja teatab täpselt, mis puudub.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/compliance \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": {
    "passport_id": 96,
    "product_name": "Alpine Merino Crew Sweater",
    "status": "compliant",
    "percentage": 100,
    "completed_fields": 12,
    "total_fields": 12,
    "missing_fields": []
  }
}

10 / Lõpp-punktidSektorid

GET /sectors

Sektorid, mille alla toote saab liigitada: platvormi süsteemisektorid ja teie tööruumis määratletud sektorid. Kasutage toodete loomisel id-d ja passi väljade kirjutamisel väljavõtmeid.

Päring
curl https://myproductpassport.eu/api/v1/sectors \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": [
    {
      "id": 4,
      "slug": "batteries",
      "name": "Batteries",
      "system": true,
      "regulations_finalised": true,
      "deadline": "2027-02-18",
      "deadline_label": "18 Feb 2027",
      "required_fields": ["battery_category", "battery_weight", "..."],
      "optional_fields": ["energy_round_trip_efficiency", "..."]
    }
  ]
}

11 / Lõpp-punktidDokumendid

GET /products/{productId}/documents nõuab products:read

Tootele lisatud vastavusdeklaratsioonid, katsearuanded ja sertifikaadid. Avalik dokument on lingitud toote igast avaldatud passist.

Päring
curl https://myproductpassport.eu/api/v1/products/512/documents \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": [
    {
      "id": 31,
      "product_id": 512,
      "filename": "declaration-of-conformity.pdf",
      "mime_type": "application/pdf",
      "file_size": 184322,
      "is_public": true,
      "processing_status": "completed",
      "public_url": "https://myproductpassport.co.uk/p/3f0c.../document/31",
      "created_at": "2026-09-22T10:12:00+00:00"
    }
  ]
}
POST /products/{productId}/documents nõuab products:write

Mitmeosaline üleslaadimine. PDF, Word, Excel, CSV, tekst, PNG ja JPEG kuni 10 MB, kuni 20 toote kohta. Tekst eraldatakse taustal.

ParameeterTüüpKirjeldus
filefilenõutavDokument.
is_publicbooleanKuva avalikul passil (vaikimisi false).
Päring
curl -X POST https://myproductpassport.eu/api/v1/products/512/documents \
  -H "Authorization: Bearer pk_your_key" \
  -F "[email protected]" \
  -F "is_public=1"
PATCH /products/{productId}/documents/{id} nõuab products:write

Lülitab, kas dokument on avalikult passilt lingitud.

ParameeterTüüpKirjeldus
is_publicbooleannõutav
Päring
curl -X PATCH https://myproductpassport.eu/api/v1/products/512/documents/31 \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"is_public": false}'
DELETE /products/{productId}/documents/{id} nõuab products:write

Eemaldab faili ja selle lingi passiga.

Päring
curl -X DELETE https://myproductpassport.eu/api/v1/products/512/documents/31 \
  -H "Authorization: Bearer pk_your_key"
Vastus
{ "message": "Document deleted." }

12 / Lõpp-punktidTarneahel

GET /products/{productId}/supply-chain nõuab products:read

Toote passil näidatud sammud järjekorras.

Päring
curl https://myproductpassport.eu/api/v1/products/512/supply-chain \
  -H "Authorization: Bearer pk_your_key"
PUT /products/{productId}/supply-chain nõuab products:write

Asendab kõik sammud teie saadetud loendiga, saadetud järjekorras. Tühjendamiseks saatke tühi loend. Sammutüübid: raw_material, processing, manufacturing, assembly, packaging, distribution.

ParameeterTüüpKirjeldus
stepsarraynõutavKuni 50 sammu.
steps[].step_typestringnõutav
steps[].supplier_namestringnõutav
steps[].supplier_locationstring
steps[].supplier_countrystringISO 3166-1 alpha-2.
steps[].lat / lngnumber
steps[].descriptionstring
steps[].certificationsarray
steps[].datedate
Päring
curl -X PUT https://myproductpassport.eu/api/v1/products/512/supply-chain \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"steps": [{"step_type": "raw_material", "supplier_name": "Merino Growers Co-op", "supplier_country": "NZ", "certifications": ["RWS"]}, {"step_type": "manufacturing", "supplier_name": "Northloom Mill", "supplier_location": "Biella", "supplier_country": "IT"}]}'

13 / Lõpp-punktidTõlked

GET /passports/{id}/translations nõuab passports:read

Iga tõlgitud välja väärtus keelte kaupa koos allikaga: auto (masintõlge, tehtud avaldamisel) või manual.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/translations \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": {
    "passport_id": 96,
    "available_locales": ["bg", "cs", "da", "de", "..."],
    "translations": {
      "de": {"care_instructions": {"value": "Kalt waschen", "source": "manual"}}
    }
  }
}
PUT /passports/{id}/translations/{locale} nõuab passports:write

Määrab ühe keele tõlked väljavõtme kaupa. Käsitsi tõlget ei kirjutata kunagi masinaga üle. Tõlke eemaldamiseks saatke tühi string.

ParameeterTüüpKirjeldus
fieldsobjectnõutavfield_key: tõlgitud väärtus
Päring
curl -X PUT https://myproductpassport.eu/api/v1/passports/96/translations/de \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"fields": {"care_instructions": "Kalt waschen, nicht bleichen"}}'
Vastus
{ "message": "1 translation(s) written, 0 removed.", "locale": "de", "written": 1, "removed": 0 }

14 / Lõpp-punktidTerviklikkus ja eksport

GET /passports/{id}/integrity nõuab passports:read

Passi iga avaldatud olek räsiahelaga seotud, Ed25519-allkirjaga kirjena: sõrmejälg (SHA-256), ahela väärtus ja allkiri. Avalikud võtmed asuvad aadressil /.well-known/mpp-integrity-keys.json, nii et igaüks saab ahelat kontrollida.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/integrity \
  -H "Authorization: Bearer pk_your_key"
Vastus
{ "data": { "state": "intact", "hash_algorithm": "SHA-256", "signature_algorithm": "Ed25519", "records": [ { "sequence": 1, "event": "published", "content_hash": "8f3a...", "chain_hash": "c21e...", "signature": "MEUC...", "key_id": "3fa9c21e0b7d4a11" } ], "problems": [] } }
GET /passports/{id}/integrity/{sequence} nõuab passports:read

Täielik kirje sellisena, nagu see allkirjastati, koos hetktõmmisega: mida pass sel hetkel sisaldas, kuni iga lisatud faili räsini.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/integrity/1 \
  -H "Authorization: Bearer pk_your_key"
GET /passports/{id}/epcis nõuab passports:read

Pass GS1 EPCIS 2.0 JSON-LD dokumendina: toote kasutuselevõtt, iga tarneahela etapp vaatlusena, üksikud akud ning teise elu pass teisendusena. Kui tootel on GTIN, on identifikaatorid GS1 Digital Link URI-d.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/epcis \
  -H "Authorization: Bearer pk_your_key"

15 / Lõpp-punktidTarnijapäringud

POST /passports/{id}/supplier-requests nõuab passports:write

Saadab tarnijale e-kirjaga privaatse lingi, et ta saaks teie valitud väljad oma keeles täita. Passi ei jõua midagi enne, kui keegi teie tööruumist selle kinnitab.

ParameeterTüüpKirjeldus
supplier_namestringnõutav
supplier_emailstringnõutav
field_keysarraynõutavVäljade võtmed passi mallist.
localestringE-kirja ja vormi keel, nt de.
due_atdateVastamise tähtaeg; vaikimisi 14 päeva.
messagestring
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/supplier-requests \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"supplier_name": "Mei Chen", "supplier_email": "[email protected]", "field_keys": ["recycled_content_cobalt", "carbon_footprint"], "locale": "de"}'
GET /passports/{id}/supplier-requests nõuab passports:read

Kõik passi päringud koos nende olekuga.

Päring
curl https://myproductpassport.eu/api/v1/passports/96/supplier-requests \
  -H "Authorization: Bearer pk_your_key"
GET /supplier-requests/{id} nõuab passports:read

Üks päring koos tarnija vastuste, märkuse ja lisatud failide nimedega.

Päring
curl https://myproductpassport.eu/api/v1/supplier-requests/12 \
  -H "Authorization: Bearer pk_your_key"

16 / Lõpp-punktidMüügijärgne teenindus

POST /passports/{id}/items nõuab items:write

Andke toote eksemplaridele (mis tahes sektor peale akude, mis kasutavad /units) oma seerianumber: igaüks saab oma aadressi ja QR-koodi, etiketi jaoks peidetud ehtsuskoodi ning omanik saab selle registreerida. Saatke kuni 10 000 eksemplari või vahemik. GTIN-iga on aadress GS1 Digital Link /01/{gtin}/21/{serial}.

ParameeterTüüpKirjeldus
items[].serialstringnõutavKuni 20 tähte, numbrit, punkti, sidekriipsu või alakriipsu.
items[].batchstringPartii, kuni 20 märki.
items[].manufactured_onstringTootmiskuupäev, AAAA-KK-PP.
rangeobjectItems asemel: prefix, start, count, digits ja batch, näiteks SN-00001 kuni SN-00500.
Päring
curl -X POST https://myproductpassport.eu/api/v1/passports/96/items \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"range": {"prefix": "SN-", "start": 1, "count": 500, "digits": 5, "batch": "B2026-10"}}'
Vastus
{ "created": 500, "updated": 0, "skipped": 0, "over_limit": 0, "errors": [] }
GET /passports/{id}/items/{serial} nõuab items:read

Eksemplar koos aadressi, oleku, registreeritusega ja garantii lõpukuupäevaga, ehtsuskontrollide ja ajalooga. Võti õigusega items:write saab ka printimiseks peidetud koodi. GET /passports/{id}/items loetleb need (filtrid status ja batch, per_page kuni 500).

Päring
curl https://myproductpassport.eu/api/v1/passports/96/items/SN-00001 \
  -H "Authorization: Bearer pk_your_key"
Vastus
{
  "data": { "serial": "SN-00001", "status": "active", "url": "https://myproductpassport.co.uk/01/05012345678900/21/SN-00001", "registered": true, "warranty_ends_on": "2028-10-02", "events": [ { "type": "registered", "country": "IE", "at": "2026-10-03T09:12:00+00:00" } ] }
}
PATCH /passports/{id}/items/{serial} nõuab items:write

Määrake olekuks stolen või recalled ja selle leht hoiatab kõiki, kes seda skannivad, koos teie status_note-iga; varastatud eksemplari ei saa registreerida. retired lülitab lehe välja. Muuta saab ka batch ja manufactured_on.

ParameeterTüüpKirjeldus
statusstringactive, stolen, recalled või retired.
status_notestringNäidatakse eksemplari lehel, kuni 500 märki.
Päring
curl -X PATCH https://myproductpassport.eu/api/v1/passports/96/items/SN-00001 \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"status": "stolen", "status_note": "Reported stolen on 2 October 2026."}'
GET /owner-registrations nõuab aftersales:read

Inimesed, kes on registreerinud teie tooteid: nimi, e-post, riik, ostukuupäev, müüja, garantii kuupäevad ja kas nad on nõustunud uudiseid ja pakkumisi saama (marketing_consent=1 loetleb ainult need). Vaikimisi aktiivsed registreeringud; status=pending, transferred või ended ülejäänute jaoks; since= kuupäevast hilisemate muudatuste jaoks.

Päring
curl "https://myproductpassport.eu/api/v1/owner-registrations?marketing_consent=1&since=2026-10-01" \
  -H "Authorization: Bearer pk_your_key"
GET /service-requests nõuab aftersales:read

Remondid, garantiinõuded, tagastused, varuosad ja küsimused teie passidest, uusimad eespool, filtritega status ja type. GET /service-requests/{reference} lisab vestluse.

Päring
curl "https://myproductpassport.eu/api/v1/service-requests?status=new" \
  -H "Authorization: Bearer pk_your_key"
POST /service-requests/{reference}/replies nõuab aftersales:write

Teie vastus saadetakse kliendile e-posti teel koos lingiga tema taotluse lehele, tema keeles. internal: true lisab märke, mida näeb ainult teie meeskond. PATCH /service-requests/{reference} koos olekuga viib selle edasi (klienti teavitatakse, kui see on töös, lahendatud või suletud).

ParameeterTüüpKirjeldus
bodystringnõutavVastus, kuni 5000 märki.
internalbooleanMärge teie meeskonnale vastuse asemel.
statusstringnew, in_progress, waiting, resolved või closed.
Päring
curl -X POST https://myproductpassport.eu/api/v1/service-requests/SR-7K3F9Q/replies \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"body": "A new lid is on its way today.", "status": "waiting"}'

17 / Lõpp-punktidHulgimuudatused ja pildid

PATCH /products/bulk-fields nõuab products:write

Määrab tooteandme või passi välja väärtuse kuni 5000 tootele. mode on set, fill (ainult tühjadele) või clear. Päringu käigus uuendatakse kuni 100 toodet; suuremad hulgad pannakse järjekorda (202).

ParameeterTüüpKirjeldus
product_idsarraynõutav
targetstringnõutavproduct | field
keystringnõutav
valuestring
modestringset | fill | clear
Päring
curl -X PATCH https://myproductpassport.eu/api/v1/products/bulk-fields \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"product_ids": [12, 13, 14], "target": "field", "key": "warranty_period", "value": "10 years", "mode": "fill"}'
Vastus
{ "data": { "changed": 2, "skipped": 1, "errors": [] } }
POST /products/{id}/images nõuab products:write

JPG-, PNG- või WebP-faili mitmeosaline üleslaadimine (kuni 15MB, 8 pilti toote kohta). Esimene pilt on avaliku passi kaanepilt.

ParameeterTüüpKirjeldus
imagefilenõutav
altstringPildi kirjeldus.
Päring
curl -X POST https://myproductpassport.eu/api/v1/products/12/images \
  -H "Authorization: Bearer pk_your_key" \
  -F [email protected] -F alt="Front of the battery"
PUT /products/{id}/images/order nõuab products:write

Edastage image_ids soovitud järjekorras; esimesest saab kaanepilt.

ParameeterTüüpKirjeldus
image_idsarraynõutav
Päring
curl -X PUT https://myproductpassport.eu/api/v1/products/12/images/order \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"image_ids": [31, 30]}'
DELETE /products/{id}/images/{imageId} nõuab products:write

Eemaldab pildi ja selle faili.

Päring
curl -X DELETE https://myproductpassport.eu/api/v1/products/12/images/31 \
  -H "Authorization: Bearer pk_your_key"

18 / Lõpp-punktidVeebihaagid

GET /webhooks nõuab webhooks:manage

Teie tööruumi jaoks registreeritud lõpp-punktid. Saladusi siin ei ole; saladuse nägemiseks laadige üks lõpp-punkt.

Päring
curl https://myproductpassport.eu/api/v1/webhooks \
  -H "Authorization: Bearer pk_your_key"
POST /webhooks nõuab webhooks:manage

Registreerib ühe või mitme sündmuse jaoks avaliku HTTPS-URL-i. Vastus sisaldab allkirjastamise saladust. Privaatsed või sisevõrgu hostid lükatakse tagasi.

ParameeterTüüpKirjeldus
urlstringnõutav
eventsarraynõutavMõni allpool loetletud sündmustest.
Päring
curl -X POST https://myproductpassport.eu/api/v1/webhooks \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://erp.acme.example/mpp", "events": ["passport.published", "product.updated"]}'
Vastus
{
  "data": {
    "id": 3,
    "url": "https://erp.acme.example/mpp",
    "events": ["passport.published", "product.updated"],
    "is_active": true,
    "failure_count": 0,
    "secret": "9f1c...64 hex characters...",
    "created_at": "2026-09-22T10:12:00+00:00"
  }
}
GET /webhooks/{id} nõuab webhooks:manage

Päring
curl https://myproductpassport.eu/api/v1/webhooks/3 \
  -H "Authorization: Bearer pk_your_key"
PUT /webhooks/{id} nõuab webhooks:manage

Muutke URL-i või sündmusi või peatage ja jätkake lõpp-punkti. Jätkamine nullib tõrgete arvu; lõpp-punkt peatatakse automaatselt pärast 10 järjestikust ebaõnnestunud edastust.

ParameeterTüüpKirjeldus
urlstring
eventsarray
is_activeboolean
Päring
curl -X PUT https://myproductpassport.eu/api/v1/webhooks/3 \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"is_active": true}'
POST /webhooks/{id}/test nõuab webhooks:manage

Paneb järjekorda webhook.test edastuse, et saaksite kontrollida vastuvõtjat ja allkirjakoodi.

Päring
curl -X POST https://myproductpassport.eu/api/v1/webhooks/3/test \
  -H "Authorization: Bearer pk_your_key"
Vastus
{ "message": "Test delivery queued." }
GET /webhooks/{id}/deliveries nõuab webhooks:manage

Viimased edastused, uusimad eespool, koos HTTP-olekuga, mille teie lõpp-punkt tagastas, ja vastuse esimese 500 tähemärgiga.

ParameeterTüüpKirjeldus
per_pageintegerKuni 100.
Päring
curl https://myproductpassport.eu/api/v1/webhooks/3/deliveries \
  -H "Authorization: Bearer pk_your_key"
DELETE /webhooks/{id} nõuab webhooks:manage

Päring
curl -X DELETE https://myproductpassport.eu/api/v1/webhooks/3 \
  -H "Authorization: Bearer pk_your_key"
Vastus
{ "message": "Webhook endpoint deleted." }

19 / SündmusedVeebihaagid

Päringute asemel registreerige rakenduses veebihaagi lõpp-punkt (leht Webhooks, saadaval alates Starter-paketist) ja MyProductPassport saadab sündmuste toimumisel teie URL-ile JSON-i POST-päringuga:

SündmusKäivitub, kui
product.createdToode luuakse (rakendus, API või CSV-import)
product.updatedToodet uuendatakse
product.deletedToode kustutatakse
passport.createdPass luuakse
passport.publishedPass avaldatakse
passport.archivedPass arhiveeritakse
supplier_request.submittedTarnija saadab teie küsitud teabe
owner.registeredOmanik kinnitab oma registreeringu
owner.transferredEksemplar läheb uuele registreeritud omanikule
service_request.createdKlient saadab passist teenindustaotluse
service_request.updatedTeenindustaotlus saab vastuse või uue oleku
item.status_changedEksemplar märgitakse varastatuks, tagasi kutsutuks või kasutusest kõrvaldatuks või märgistus eemaldatakse
item.verification_failedTurvasildi lugemine ebaõnnestub, valed koodid kuhjuvad või seerianumber ilmub liiga paljudes kohtades
webhook.testSaadate rakendusest testedastuse

Iga edastus on JSON-ümbrik: edastuse ID (korduskatsetel saadetakse sama ID, et saaksite duplikaadid eemaldada), sündmus, katse number, ajatempel ja sündmuse andmed. Passisündmused sisaldavad passi uuid-d ja avalikku URL-i, nii et teist päringut on harva vaja:

Edastuse sisu
{
  "id": 8123,
  "event": "passport.published",
  "attempt": 1,
  "created_at": "2026-09-22T10:12:00+00:00",
  "data": {
    "passport_id": 96,
    "uuid": "3f0c8f1e-...",
    "version": 2,
    "status": "published",
    "public_url": "https://myproductpassport.co.uk/p/3f0c8f1e-...",
    "product_id": 512,
    "product": {"id": 512, "name": "Alpine Merino Crew Sweater", "sku": "NL-AMC-001", "gtin": "5012345678900"}
  }
}

Päised sisaldavad sündmuse nime, edastuse ID-d, Unixi ajatemplit ja töötlemata sisu HMAC-allkirja, et saaksite kontrollida, et see tuli meilt, ja korduseid tagasi lükata:

Edastuse päised
Content-Type: application/json
User-Agent: MyProductPassport-Webhooks/1.0
X-MPP-Event: passport.published
X-MPP-Delivery: 8123
X-MPP-Timestamp: 1790084320
X-MPP-Signature: sha256=<hex hmac of the raw body, keyed with your endpoint secret>

Vastake 10 sekundi jooksul mis tahes 2xx-koodiga. Kõike muud proovitakse uuesti viis korda umbes 90 minuti jooksul (30 s, 1 min, 5 min, 15 min, 1 h); pärast 10 järjestikust ebaõnnestumist peatatakse lõpp-punkt, kuni selle uuesti lubate.

Kontrolli (PHP)
$expected = 'sha256=' . hash_hmac('sha256', $rawBody, $endpointSecret);
abort_unless(hash_equals($expected, $request->header('X-MPP-Signature')), 401);