Catálogo de productos del comercio Cada comercio puede mantener un catálogo de productos reutilizable. Estos productos se identifican por su sku y guardan las claves del SAT (producto/servicio y unidad) junto con el precio unitario, de modo que puedan referenciarse al generar transacciones y facturas.
Todas las operaciones de este recurso pertenecen a la Gestión de Clientes y se autentican con Authorization: Bearer {{access_token}}.
Registra uno o más productos en el catálogo de un comercio. El cuerpo es una lista , por lo que puedes crear varios productos en una sola petición.
POST /v1/qrs/merchants/{merchantId}/products Host (DEV):
https://api-dev.qrwey.com Host (PROD):
Authorization : Bearer {{access_token}}
Content-Type : application/json Parámetro Descripción merchantIdID del comercio (requerido)
Campos de CreateMerchantProductRequest Campo Descripción skuIdentificador único de producto (SKU) para control interno del comercio (requerido) satProductServiceCodeClave de Producto/Servicio según el catálogo del SAT (requerido) descriptionDescripción del producto o servicio (requerido) satUnitCodeClave de Unidad según el catálogo del SAT (requerido) unitPricePrecio unitario del producto. Debe ser mayor a cero (requerido)
curl -X POST "https://api-dev.qrwey.com/v1/qrs/merchants/mer_4aca0361cfcd41c097663db44008fbb9/products" \
-H "Authorization: Bearer {{access_token}}" \
-H "Content-Type: application/json" \
-d '[
{
"sku": "GAS87",
"satProductServiceCode": "15101515",
"description": "Gasolina Magna",
"satUnitCode": "LTR",
"unitPrice": 20.325
}
]' [
{
"merchantProductId" : "prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" ,
"merchantId" : "mer_4aca0361cfcd41c097663db44008fbb9" ,
"sku" : "GAS87" ,
"satProductServiceCode" : "15101515" ,
"satProductServiceDescription" : "Gasolina" ,
"description" : "Gasolina Magna" ,
"satUnitCode" : "LTR" ,
"satUnitDescription" : "Litro" ,
"unitPrice" : 20.325 ,
"status" : "ACTIVE"
}
] Devuelve una lista paginada de los productos del catálogo de un comercio, con filtro opcional por SKU o descripción.
GET /v1/qrs/merchants/{merchantId}/products Authorization : Bearer {{access_token}} Parámetro Descripción merchantIdID del comercio (requerido)
Parámetro Descripción searchTexto para filtrar por SKU o descripción del producto (opcional) pageNúmero de página (default: 0) sizeElementos por página (default: 20) sortCampo y dirección de ordenamiento (ej. createdAt,desc)
curl -X GET "https://api-dev.qrwey.com/v1/qrs/merchants/mer_4aca0361cfcd41c097663db44008fbb9/products?search=GAS&page=0&size=10" \
-H "Authorization: Bearer {{access_token}}" {
"content" : [
{
"merchantProductId" : "prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" ,
"merchantId" : "mer_4aca0361cfcd41c097663db44008fbb9" ,
"sku" : "GAS87" ,
"satProductServiceCode" : "15101515" ,
"satProductServiceDescription" : "Gasolina" ,
"description" : "Gasolina Magna" ,
"satUnitCode" : "LTR" ,
"satUnitDescription" : "Litro" ,
"unitPrice" : 20.325 ,
"status" : "ACTIVE"
}
],
"totalElements" : 1 ,
"totalPages" : 1 ,
"number" : 0 ,
"size" : 10
} Campos de MerchantProductResponse Campo Descripción merchantProductIdIdentificador único del producto en el catálogo merchantIdID del comercio dueño del producto skuIdentificador interno del producto (SKU) satProductServiceCodeClave de Producto/Servicio del SAT satProductServiceDescriptionDescripción de la clave de Producto/Servicio del SAT descriptionDescripción del producto o servicio satUnitCodeClave de Unidad del SAT satUnitDescriptionDescripción de la clave de Unidad del SAT unitPricePrecio unitario del producto statusEstatus del producto: ACTIVE, INACTIVE
GET /v1/qrs/merchants/{merchantId}/products/{merchantProductId} Authorization : Bearer {{access_token}} Parámetro Descripción merchantIdID del comercio (requerido) merchantProductIdID del producto del comercio (requerido)
curl -X GET "https://api-dev.qrwey.com/v1/qrs/merchants/mer_4aca0361cfcd41c097663db44008fbb9/products/prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" \
-H "Authorization: Bearer {{access_token}}" {
"merchantProductId" : "prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" ,
"merchantId" : "mer_4aca0361cfcd41c097663db44008fbb9" ,
"sku" : "GAS87" ,
"satProductServiceCode" : "15101515" ,
"satProductServiceDescription" : "Gasolina" ,
"description" : "Gasolina Magna" ,
"satUnitCode" : "LTR" ,
"satUnitDescription" : "Litro" ,
"unitPrice" : 20.325 ,
"status" : "ACTIVE"
} Actualiza los datos de un producto existente, incluyendo su estatus. El campo merchantProductId debe enviarse también en el cuerpo de la petición.
PUT /v1/qrs/merchants/{merchantId}/products/{merchantProductId} Authorization : Bearer {{access_token}}
Content-Type : application/json Parámetro Descripción merchantIdID del comercio (requerido) merchantProductIdID del producto del comercio (requerido)
Campos de UpdateMerchantProductRequest Campo Descripción merchantProductIdID del producto que se actualiza (requerido) skuIdentificador interno del producto (SKU) (requerido) satProductServiceCodeClave de Producto/Servicio del SAT (requerido) descriptionDescripción del producto o servicio (requerido) satUnitCodeClave de Unidad del SAT (requerido) unitPricePrecio unitario del producto. Debe ser mayor a cero (requerido) statusEstatus del producto: ACTIVE, INACTIVE (requerido)
curl -X PUT "https://api-dev.qrwey.com/v1/qrs/merchants/mer_4aca0361cfcd41c097663db44008fbb9/products/prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" \
-H "Authorization: Bearer {{access_token}}" \
-H "Content-Type: application/json" \
-d '{
"merchantProductId": "prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b",
"sku": "GAS87",
"satProductServiceCode": "15101515",
"description": "Gasolina Magna",
"satUnitCode": "LTR",
"unitPrice": 21.100,
"status": "ACTIVE"
}' {
"merchantProductId" : "prod_9f3b2a17c4e84d6f8a1b2c3d4e5f6a7b" ,
"merchantId" : "mer_4aca0361cfcd41c097663db44008fbb9" ,
"sku" : "GAS87" ,
"satProductServiceCode" : "15101515" ,
"satProductServiceDescription" : "Gasolina" ,
"description" : "Gasolina Magna" ,
"satUnitCode" : "LTR" ,
"satUnitDescription" : "Litro" ,
"unitPrice" : 21.100 ,
"status" : "ACTIVE"
} Código Motivo 400 Parámetros inválidos (SKU o claves del SAT faltantes, unitPrice menor o igual a cero) 401 Token inválido o expirado 404 Producto o comercio no encontrado, o no pertenece a tu cuenta
Consulta: Manejo de errores
Mantén el sku consistente con tu sistema interno para conciliar inventario y facturación Usa claves del SAT válidas; consúltalas en Catálogos del SAT Marca como INACTIVE los productos que dejes de vender en lugar de eliminarlos, para conservar su historial