Başlangıç
Başlangıç
Boş bir hesaptan herkese açık bağlantısı olan yayımlanmış bir pasaporta kadar beş istek.
1.API anahtarı oluşturma
Anahtarlar ayarlar bölümünde üretilir. Bir anahtar yalnızca oluşturulduğu anda bir kez gösterilir; sonrasında yalnızca tanımlayıcısı görünür kalır.
Yalnızca entegrasyonun gerçekten ihtiyaç duyduğu kapsamları verin. Pasaportları okuyabilen ama yayımlayamayan bir anahtar, bir kataloğu yanlışlıkla canlıya alamaz.
Ayarlarda API anahtarlarını açınshellexport PASSPORTCRAFT_API_KEY=pc_sk_test_…2.Anahtarı denetleme
Yapılmaya değer ilk çağrı. Anahtarın çalıştığını doğrular, canlı mı yoksa test kimlik bilgisi mi olduğunu bildirir ve adına işlem yapabileceği kuruluşları, sonraki her isteğin gerektirdiği kuruluş kimliğiyle birlikte listeler.
Bu uç noktanın tam referansıİstekcurl "https://passportcraft.com/api/v1/whoami" \ -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"Yanıt{ "object": "credential", "key_id": "K3n9Qw2P", "livemode": true, "owner_organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "expires_at": null, "last_used_at": "2026-08-02T07:41:03.220Z", "organizations": [ { "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "scopes": [ "passports:read", "passports:write", "units:read", "units:write" ], "granted_at": "2026-07-14T11:02:19.004Z" } ] }3.Pasaport oluşturma
Bir pasaport taslak olarak doğar. Yalnızca kategori zorunludur; belge daha sonra alan alan doldurulabilir, tıpkı düzenleyicideki gibi.
Bu uç noktanın tam referansıİstekcurl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports" \ -X POST \ -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "category": "textile", "external_id": "SKU-4471-BLK", "data": { "product_name": "Merino Crew Neck", "product_description": "Mid-weight knitted crew neck in 100% merino wool.", "manufacturer_name": "Atelier Kestrel SAS", "manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix", "manufacturer_country": "FR" } }'Yanıt{ "object": "passport", "id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "category": "textile", "status": "draft", "gtin": null, "serial_number": null, "external_id": "SKU-4471-BLK", "version": 1, "livemode": true, "registry_id": null, "created_at": "2026-08-01T09:12:44.918Z", "updated_at": "2026-08-01T09:12:44.918Z", "published_at": null, "trashed_at": null, "data": { "product_name": "Merino Crew Neck", "product_description": "Mid-weight knitted crew neck in 100% merino wool.", "manufacturer_name": "Atelier Kestrel SAS", "manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix", "manufacturer_country": "FR", "material_composition": [ { "fiber": "Merino wool", "percentage": 100 } ], "substances_of_concern": [ { "name": "None declared", "present": false } ] } }4.Yayımlamadan önce denetleme
Denetleme hiçbir şey yazmaz. Yayımlamayı neyin engelleyeceğini ve neyin yalnızca uyarı olduğunu bildirir; böylece entegrasyon asıl önemli çağrıdan önce durumu öğrenir.
Bu uç noktanın tam referansıİstekcurl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/validate" \ -X POST \ -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "data": { "material_composition": null } }'Yanıt{ "object": "validation", "id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/validation", "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "category": "textile", "schema_version": "1.0.0-draft", "dry_run": true, "valid": false, "publishable": false, "error_count": 2, "warning_count": 0, "checked_at": "2026-08-02T08:26:11.409Z", "issues": [ { "object": "validation_issue", "field": "material_composition", "source": { "pointer": "/data/material_composition" }, "rule": "required", "severity": "error", "message": "Material Composition is required", "message_key": "required", "message_params": { "field": "Material Composition" }, "writable_via_api": true }, { "object": "validation_issue", "field": "gtin", "source": { "pointer": "/data/gtin" }, "rule": "required", "severity": "error", "message": "A GTIN is required before this passport can be published.", "writable_via_api": true } ] }5.Yayımlama
Yayımlandığında pasaport, kodu okutan herkes tarafından görüntülenebilir hâle gelir. Zorunlu bir alan eksikse, GTIN yoksa ya da planda boş yayımlama hakkı kalmadıysa çağrı reddedilir.
Bu uç noktanın tam referansıİstekcurl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/publish" \ -X POST \ -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \ -H "Idempotency-Key: $(uuidgen)"Yanıt{ "object": "passport", "id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "category": "textile", "status": "published", "gtin": "03453120000011", "serial_number": null, "external_id": "SKU-4471-BLK", "version": 4, "livemode": true, "registry_id": null, "created_at": "2026-08-01T09:12:44.918Z", "updated_at": "2026-08-01T14:03:22.501Z", "published_at": "2026-08-01T14:03:22.501Z", "trashed_at": null, "data": { "product_name": "Merino Crew Neck", "product_description": "Mid-weight knitted crew neck in 100% merino wool.", "manufacturer_name": "Atelier Kestrel SAS", "manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix", "manufacturer_country": "FR", "material_composition": [ { "fiber": "Merino wool", "percentage": 100 } ], "substances_of_concern": [ { "name": "None declared", "present": false } ], "gtin": "03453120000011" }, "warnings": [ { "code": "environmental_claim_detected", "message": "This passport contains environmental claim language (carbon neutral). From 27 September 2026, Directive (EU) 2024/825 requires the trader placing the product on the market to hold substantiation for such claims. Publishing succeeded; confirm the substantiation exists.", "doc_url": "https://passportcraft.com/docs/api/errors#environmental_claim_detected" } ] }6.Herkese açık bağlantıyı alma
Herkese açık sayfayı, GS1 Digital Link adresini ve basılı bir QR kodun kodladığı tam hedefi döndürür: etiket matbaasına verilecek değer.
Bu uç noktanın tam referansıİstekcurl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links" \ -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"Yanıt{ "object": "passport_links", "id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links", "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2", "passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "status": "published", "livemode": true, "gtin": "03453120000011", "serial_number": null, "public_url": "https://passportcraft.com/passport/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41", "qr_target": "https://passportcraft.com/01/03453120000011", "gs1_digital_link": { "uri": "https://passportcraft.com/01/03453120000011", "gtin14": "03453120000011", "serial": null, "linkset_url": "https://passportcraft.com/01/03453120000011?linkType=linkset", "unavailable_reason": null }, "resolves_publicly": true, "not_resolvable_reason": null }