La API de integraciones de Customix te permite llevar tus pedidos personalizados a tus propios sistemas: los archivos de impresión que Customix ha generado y todo lo que tus clientes han introducido al personalizar, como nombres, textos personalizados, colores y diseños elegidos. Úsala cuando una herramienta de producción, una hoja de cálculo o una plataforma de automatización como Make necesite los detalles de tus pedidos sin que nadie tenga que copiarlos a mano.
Para obtener una clave de API, ve a Ajustes en la barra lateral izquierda, abre la pestaña Integraciones y haz clic en Crear clave en la tarjeta Clave de API. Consulta Cómo obtener la clave de API de Customix para ver los detalles.
🔑 Autenticación
Todas las solicitudes requieren tu clave de API en el encabezado:
Authorization: Bearer <your_api_key>🌐 Base URL
https://app.customix.io/api/integrations/v1📘 Endpoints
1. Obtener la lista de pedidos
Endpoint:
GET /ordersDescripción: obtiene tus pedidos personalizados, los más recientes primero de forma predeterminada.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
shop | string | ✅ | Nombre de la tienda de Shopify. Si la URL de tu tienda es abcdef.myshopify.com, entonces shop=abcdef |
limit | integer | ⬜ | El valor predeterminado es 50 y el máximo es 250 |
created_at_min | date | ⬜ | Muestra los pedidos creados en esta fecha o después (formato: 2025-01-21) |
created_at_max | date | ⬜ | Muestra los pedidos creados en esta fecha o antes (formato: 2025-01-30) |
order_status | string | ⬜ | created: muestra solo los pedidos abiertos. paid: muestra solo los pedidos pagados. fulfilled: muestra solo los pedidos preparados. |
order_by | string | ⬜ | El valor predeterminado es 'ordered_at desc'. También puede ser 'ordered_at asc', 'id asc' o 'id desc' |
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer API_KEY |
Ejemplo de solicitud:
GET https://app.customix.io/api/integrations/v1/orders?shop=abcdef&limit=2Respuesta:
{
"data": [
{
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"currency": "USD",
"customer": "John Doe",
"email": "[email protected]",
"ip": "123.123.123.123",
"total_price": 123.45,
"financial_status": "paid",
"fulfillment_status": "fulfilled",
"ordered_at": "2025-01-21 01:01:01",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" },
{ "key": "100004", "label": "Color", "type": "color-picker", "value": "#1a2b3c" }
]
}
]
}
]
}Respuestas de error:
| Código | Mensaje | Descripción |
|---|---|---|
| 401 | Unauthorized | Token no válido o ausente |
| 403 | Forbidden | No tienes permiso para ver los pedidos de esta tienda |
2. Obtener un pedido concreto
Endpoint:
GET /orders/{id}Descripción: obtiene un pedido, con sus archivos de impresión y los valores de personalización.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
shop | string | ✅ | Nombre de la tienda de Shopify. Si la URL de tu tienda es abcdef.myshopify.com, entonces shop=abcdef |
id | integer | ✅ | ID del pedido de Shopify, en la ruta |
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Ejemplo de solicitud:
GET https://app.customix.io/api/integrations/v1/orders/123456789?shop=abcdefRespuesta: un único pedido en data, con los mismos campos que una entrada de la lista anterior:
{
"data": {
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"line_item_quantity": 1,
"files": [
{ "id": "01jb3092vabc7m8qw4cdqv09we", "name": "default", "path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png" }
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" }
]
}
]
}
}(Abreviado aquí: la respuesta real incluye todos los campos que se muestran en el ejemplo de la lista.)
Respuestas de error:
| Código | Mensaje | Descripción |
|---|---|---|
| 401 | Unauthorized | Token no válido o ausente |
| 403 | Forbidden | No tienes permiso para ver este pedido |
| 404 | Not Found | Pedido no encontrado |
3. Obtener la personalización de un pedido concreto
Endpoint:
GET /orders/{order_id}/customizations/{public_customization_id}Descripción: recupera una personalización de un pedido.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
shop | string | ✅ | Nombre de la tienda de Shopify. Si la URL de tu tienda es abcdef.myshopify.com, entonces shop=abcdef |
order_id | integer | ✅ | ID del pedido de Shopify, en la ruta |
public_customization_id | string | ✅ | El public_customization_id de la personalización, en la ruta. Está en la respuesta del pedido y, en Shopify, en el pedido como propiedad de artículo _cm-customization-id |
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Ejemplo de solicitud:
GET https://app.customix.io/api/integrations/v1/orders/123456789/customizations/01jjavmg7t7vqj5z6qvxwpc9kd?shop=abcdefRespuesta: la personalización por sí sola, sin envolver en data:
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" }
]
}Respuestas de error:
| Código | Mensaje | Descripción |
|---|---|---|
| 401 | Unauthorized | Token no válido o ausente |
| 403 | Forbidden | No tienes permiso para ver esta personalización |
| 404 | Not Found | Pedido no encontrado o personalización no encontrada |
🖊️ Valores de personalización
Cada personalización incluye values: una entrada por cada campo de personalización guardado con el pedido, los mismos detalles que ves como propiedades del artículo en el pedido de Shopify. Cada entrada tiene:
- key: el identificador del campo en tu plantilla. Es el mismo en todos los pedidos para el mismo campo de la misma plantilla, así que úsalo para asignar campos en tu integración.
- label: el nombre de la opción que vieron tus clientes, por ejemplo "Name". Puede estar vacío en pedidos antiguos.
- type: el tipo de opción, por ejemplo
text-field,color-picker,font-swatch,image-swatch,layout-swatch,date-pickerofile-upload. - value: lo que tu cliente eligió o introdujo, siempre como texto.
Cómo se lee value en cada tipo de opción:
- Texto: exactamente lo que escribió tu cliente.
- Selector de color: el código del color que eligió tu cliente.
- Muestras de fuente, imagen, color y contorno: el valor de la muestra que eligió tu cliente.
- Muestras de diseño: el nombre del diseño que eligió tu cliente, tal como se llamaba cuando hizo el pedido.
- Selectores de fecha y hora: la fecha o la hora que eligió tu cliente.
- Subidas de archivos y vectores: un enlace al archivo que subió tu cliente.
- Paletas y fuentes de nube de palabras: los colores o las fuentes que eligió tu cliente, separados por comas.
- Las opciones que no tienen forma de texto, como los estilos de mapa, las ubicaciones o las canciones de Spotify, devuelven un valor vacío: usa los archivos de impresión para esas.
⚠️ Códigos de error habituales
| Código | Descripción |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized: clave de API no válida o ausente |
| 403 | Forbidden: sin permiso para esta tienda, o el acceso a la API no está disponible en tu plan actual |
| 404 | Not Found |
| 422 | Falta el nombre de la tienda: el parámetro shop es obligatorio |
| 500 | Internal Server Error |
📌 Notas
- Todas las respuestas están en JSON.
- Límite de solicitudes:
2 requests/second. - Escribe a [email protected] si tienes preguntas.
Actualizado el: 14/09/2026