Recursos
Pasaportes
Todos los endpoints de Pasaportes, con el ámbito que imponen, el cuerpo que admiten, una respuesta legible y los rechazos que pueden devolver.
Listar pasaportes.
/organizations/{organization}/passports- Ámbito
- passports:read
Idempotency-Key- No se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
Parámetros de consulta
limitstringOpcionalCuántos registros devolver. El servidor puede devolver menos.
cursorstringOpcionalEl next_cursor de la página anterior. Un cursor codifica los filtros con los que se emitió; enviarlo con otros filtros se rechaza con cursor_invalid.
statusstringOpcionalDevuelve solo los pasaportes que estén en este estado.
categorystringOpcionalDevuelve solo los pasaportes de esta categoría.
updated_sincestringOpcionalUna marca de tiempo RFC 3339. Devuelve los pasaportes actualizados en ese instante o después, que es como un integrador consulta los cambios sin volver a leer el catálogo entero.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports?status=published&limit=25" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "list",
"data": [
{
"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",
"external_id": "SKU-4471-BLK",
"version": 4,
"livemode": true,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T14:03:22.501Z",
"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"
}
}
],
"has_more": false,
"next_cursor": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports?status=published&limit=25
Crear un pasaporte.
/organizations/{organization}/passports- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 201
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
Cuerpo de la solicitud
categorystringObligatorioUn id de categoría de GET /categories. Fija el esquema de campos y ya no puede cambiarse después.
external_idstringOpcionalSu propio identificador para este producto, de 1 a 255 caracteres. Único dentro de la organización y del modo, que es lo que permite conciliar sin guardar nuestros ids: el mismo id puede existir una vez en prueba y otra en producción.
dataobjectOpcionalEl documento del pasaporte. Las claves son nombres de campo del esquema de la categoría, más la clave document_id_key de cada campo que admite documentos; cualquier otra cosa se rechaza en lugar de guardarse en silencio.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 429rate_limited
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "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"
}
}'{
"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
}
]
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports
Obtener un pasaporte.
/organizations/{organization}/passports/{id}- Ámbito
- passports:read
Idempotency-Key- No se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"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"
}
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41
Aplicar un JSON Merge Patch a un pasaporte.
/organizations/{organization}/passports/{id}- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Cabeceras de solicitud
If-MatchstringOpcionalEl ETag del pasaporte que acaba de leer. La escritura se rechaza con precondition_failed si el pasaporte cambió entretanto, que es la única forma de hacer segura una secuencia de leer, modificar y escribir frente a un editor concurrente.
Cuerpo de la solicitud
dataobjectOpcionalUn JSON Merge Patch (RFC 7386) que se aplica al documento del pasaporte. Omita una clave para dejarla intacta; envíe null para borrarla. Las listas se reemplazan enteras, nunca se fusionan.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41" \
-X PATCH \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"data": {
"recycled_content_percentage": 38,
"recycling_instructions": "Return to any Atelier Kestrel store for fibre recovery."
}
}'{
"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": 2,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T10:44:12.700Z",
"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
}
],
"recycled_content_percentage": 38,
"recycling_instructions": "Return to any Atelier Kestrel store for fibre recovery."
}
}PATCH /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41
Publicar un pasaporte.
/organizations/{organization}/passports/{id}/publish- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 422document_missing
- 422gtin_required
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 402publish_limit_reached
- 429rate_limited
- 404resource_not_found
- 503storage_unavailable
- 402unit_limit_reached
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "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)"{
"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"
}
]
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/publish
Despublicar un pasaporte.
Destructiva/organizations/{organization}/passports/{id}/unpublish- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/unpublish" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"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": "03453120000011",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 5,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:15:09.113Z",
"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
}
],
"gtin": "03453120000011"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/unpublish
Enviar un pasaporte a la papelera.
Destructiva/organizations/{organization}/passports/{id}/trash- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/trash" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"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": "trashed",
"gtin": "03453120000011",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 6,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:19:44.002Z",
"published_at": null,
"trashed_at": "2026-08-02T08:19:44.002Z",
"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"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/trash
Restaurar un pasaporte desde la papelera.
/organizations/{organization}/passports/{id}/restore- Ámbito
- passports:write
Idempotency-Key- Se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 409not_trashed
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/restore" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"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": "03453120000011",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 7,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:21:03.884Z",
"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
}
],
"gtin": "03453120000011"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/restore
Comprobar un pasaporte contra el esquema de su categoría sin guardar.
/organizations/{organization}/passports/{id}/validate- Ámbito
- passports:read
Idempotency-Key- No se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Cuerpo de la solicitud
dataobjectOpcionalCampos que se fusionan antes de la comprobación, para que pueda probar una edición sin guardarla. En ningún caso se escribe nada.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 429rate_limited
- 404resource_not_found
- 503storage_unavailable
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "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
}
}'{
"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
}
]
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/validate
Obtener la URL pública y el GS1 Digital Link.
/organizations/{organization}/passports/{id}/links- Ámbito
- passports:read
Idempotency-Key- No se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"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
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links
Desvincular un documento y eliminarlo de la biblioteca cuando ya no lo use nada más.
/organizations/{organization}/passports/{id}/documents/{documentId}- Ámbito
- documents:write
Idempotency-Key- No se acepta
- Devuelve
- 200
Parámetros de ruta
organizationstringObligatorioLa organización en cuyo nombre actúa esta solicitud. La clave debe tener concesión sobre ella.
idstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
documentIdstringObligatorioEl identificador del recurso. Trátelo como una cadena opaca.
Errores
Todos los rechazos que este endpoint puede devolver, con el estado con el que llegan.
- 500configuration_error
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 429rate_limited
- 409resource_busy
- 404resource_not_found
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b" \
-X DELETE \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "document.deleted",
"id": "a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"livemode": true,
"detached": true,
"deleted_from_library": true,
"remaining_links": 0,
"document_limit": 50
}DELETE /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b