Query product
GET /api/v1/productos/{codigo}
Looks up a catalog product by its codigo — the same one used for the upsert and for codigoProducto when invoicing.
Authentication and permissions
| Attribute | Value |
|---|---|
| Scheme | API key (X-Api-Key) |
| Required scope | catalogo:read |
| Rate limit | 120 req/min per API key |
Example
curl https://api.pos.lxsyscr.com/api/v1/productos/API-TEST-001 \
-H "X-Api-Key: $LXS_API_KEY"Responses
200 OK
{
"idProducto": 919,
"codigo": "API-TEST-001",
"nombre": "Producto de prueba API",
"descripcion": "Alta desde la API de integradores",
"codigoCabys": "2342002000000",
"unidadMedida": "Unid",
"precioVenta": 1500.0000,
"precioCosto": 1000.0000,
"idCategoria": null,
"idSubcategoria": null,
"idMarca": 0,
"idProveedor": 0,
"estado": true,
"impuestos": [
{ "codigo": "01", "porcentaje": 13.0000, "codigoTarifa": "08" }
],
"advertencia": null
}advertencia always comes back null on a query: it’s only populated as the direct response of a POST that triggered unit-of-measure autocorrection. It is not persisted, so re-reading the product never shows it again.
404 Not Found
{ "error": "No existe un producto con código 'API-TEST-001'." }Operational notes
- The query does not filter by
estado: a deactivated product (estado: false) is returned all the same. Check that field if you need to distinguish it. - The
codigois compared as-is against what’s stored, without normalizing case; the only thing done is trimming leading and trailing whitespace from the received value.