Documentación

Productos

El catálogo de productos y servicios del libro. Recurso JSON:API product ; sku es único por libro y los precios viajan como cadenas decimales.

El objeto product #

Atributos

active boolean requerido

false desactiva el registro sin borrarlo.

book_id uuid requerido

El libro contable dueño del registro — siempre el de tu llave.

iva_rate string requerido

Tarifa de IVA del producto ( 15 , 5 , 0 ).

kind enum requerido

Bien o servicio; los servicios nunca mueven inventario.

goodservice

name string requerido

Nombre que aparece en los comprobantes.

sku string requerido

Tu código del producto — único por libro.

standard_cost string requerido

Costo estándar, como cadena decimal.

tax_treatment enum requerido

Tratamiento de IVA: gravado, exento o no objeto.

taxedexemptnot_subject

tenant_slug string requerido

La organización dueña del libro.

track_stock boolean requerido

Con true , el producto mueve kardex al comprarse y venderse.

unit string requerido

Unidad de medida ( UND , KG , HORA …).

unit_price string requerido

Precio de venta unitario sin impuestos, como cadena decimal.

valuation_method enum requerido

Valoración del inventario: promedio ponderado o FIFO.

weighted_averagefifo

category string

Categoría libre para agrupar el catálogo.

tax_code string

Código de impuesto del catálogo local, si aplica.

Filtrable por: activebook_idcategoryidiva_ratekindnameskustandard_costtax_codetax_treatmenttenant_slugtrack_stockunitunit_pricevaluation_method

Ordenable por: activebook_idcategoryidiva_ratekindnameskustandard_costtax_codetax_treatmenttenant_slugtrack_stockunitunit_pricevaluation_method

Crear un producto#

POST /api/v1/products Bearer

Content-Type: application/vnd.api+json

Cuerpo de la solicitud

name string requerido

Nombre que aparece en los comprobantes.

sku string requerido

Tu código del producto — único por libro.

active boolean

false desactiva el registro sin borrarlo.

category string

Categoría libre para agrupar el catálogo.

iva_rate string

Tarifa de IVA del producto ( 15 , 5 , 0 ).

kind enum

Bien o servicio; los servicios nunca mueven inventario.

goodservice

standard_cost string

Costo estándar, como cadena decimal.

tax_code string

Código de impuesto del catálogo local, si aplica.

tax_treatment enum

Tratamiento de IVA: gravado, exento o no objeto.

taxedexemptnot_subject

track_stock boolean

Con true , el producto mueve kardex al comprarse y venderse.

unit string

Unidad de medida ( UND , KG , HORA …).

unit_price string

Precio de venta unitario sin impuestos, como cadena decimal.

valuation_method enum

Valoración del inventario: promedio ponderado o FIFO.

weighted_averagefifo

Devuelve · 201 con data · 400 si el cuerpo no cumple el esquema.

cURL
curl -X POST https://edge.datil.com/api/v1/products \
  -H "Authorization: Bearer $DATIL_API_KEY" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "product",
    "attributes": {
      "sku": "SRV-001",
      "name": "Consultoría mensual",
      "kind": "service",
      "unit_price": "100.00",
      "iva_rate": "15"
    }
  }
}'
Respuesta · 201
{
  "data": {
    "type": "product",
    "id": "7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e",
    "attributes": {
      "active": true,
      "book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
      "iva_rate": "15",
      "kind": "service",
      "name": "Consultoría mensual",
      "sku": "SRV-001",
      "standard_cost": "0.00",
      "tax_treatment": "taxed",
      "tenant_slug": "acme",
      "track_stock": false,
      "unit": "UND",
      "unit_price": "100.00",
      "valuation_method": "weighted_average",
      "category": "Servicios",
      "tax_code": null
    }
  }
}

Listar productos#

GET /api/v1/products Bearer

Parámetros

filter[…] object

Filtra por atributo: filter[kind]=customer , u operadores anidados como filter[issue_date][greater_than]=2026-07-01 . Combinable con filter[and] / filter[or] .

sort string

Atributos separados por coma; prefijo - para descendente: sort=-issue_date .

page[limit] integer

Máximo de registros por página.

page[offset] integer

Desplazamiento desde el inicio del listado.

page[count] boolean

Con true , la respuesta incluye el total en meta.page.total .

fields[tipo] string

Atributos a devolver, separados por coma — el sparse fieldset de JSON:API.

Devuelve · 200 con data — lista de objetos product .

cURL
curl "https://edge.datil.com/api/v1/products?filter[active]=true&sort=sku" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "type": "product",
      "id": "7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e",
      "attributes": {
        "active": true,
        "book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
        "iva_rate": "15",
        "kind": "service",
        "name": "Consultoría mensual",
        "sku": "SRV-001",
        "standard_cost": "0.00",
        "tax_treatment": "taxed",
        "tenant_slug": "acme",
        "track_stock": false,
        "unit": "UND",
        "unit_price": "100.00",
        "valuation_method": "weighted_average",
        "category": "Servicios",
        "tax_code": null
      }
    }
  ]
}

Consultar un producto#

GET /api/v1/products/:id Bearer

Parámetros

id uuid requerido

Id del producto.

Devuelve · 200 con data · 404 .

cURL
curl "https://edge.datil.com/api/v1/products/7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "data": {
    "type": "product",
    "id": "7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e",
    "attributes": {
      "active": true,
      "book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
      "iva_rate": "15",
      "kind": "service",
      "name": "Consultoría mensual",
      "sku": "SRV-001",
      "standard_cost": "0.00",
      "tax_treatment": "taxed",
      "tenant_slug": "acme",
      "track_stock": false,
      "unit": "UND",
      "unit_price": "100.00",
      "valuation_method": "weighted_average",
      "category": "Servicios",
      "tax_code": null
    }
  }
}

Actualizar un producto#

PATCH /api/v1/products/:id Bearer

Content-Type: application/vnd.api+json

Parámetros

id uuid requerido

Id del producto.

Cuerpo de la solicitud

active boolean

false desactiva el registro sin borrarlo.

category string

Categoría libre para agrupar el catálogo.

iva_rate string

Tarifa de IVA del producto ( 15 , 5 , 0 ).

kind enum

Bien o servicio; los servicios nunca mueven inventario.

goodservice

name string

Nombre que aparece en los comprobantes.

standard_cost string

Costo estándar, como cadena decimal.

tax_code string

Código de impuesto del catálogo local, si aplica.

tax_treatment enum

Tratamiento de IVA: gravado, exento o no objeto.

taxedexemptnot_subject

track_stock boolean

Con true , el producto mueve kardex al comprarse y venderse.

unit string

Unidad de medida ( UND , KG , HORA …).

unit_price string

Precio de venta unitario sin impuestos, como cadena decimal.

valuation_method enum

Valoración del inventario: promedio ponderado o FIFO.

weighted_averagefifo

Devuelve · 200 con data · 404 .

cURL
curl -X PATCH https://edge.datil.com/api/v1/products/7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e \
  -H "Authorization: Bearer $DATIL_API_KEY" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "product",
    "attributes": {
      "unit_price": "100.00",
      "active": true
    }
  }
}'
Respuesta · 200
{
  "data": {
    "type": "product",
    "id": "7d9f1b3a-5c7e-4d2b-8a0c-4e6a8c0b2d4e",
    "attributes": {
      "active": true,
      "book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
      "iva_rate": "15",
      "kind": "service",
      "name": "Consultoría mensual",
      "sku": "SRV-001",
      "standard_cost": "0.00",
      "tax_treatment": "taxed",
      "tenant_slug": "acme",
      "track_stock": false,
      "unit": "UND",
      "unit_price": "100.00",
      "valuation_method": "weighted_average",
      "category": "Servicios",
      "tax_code": null
    }
  }
}
Sin conexión — reintentando…

Esenciales

Sesión, seguridad, idioma y tema. Sin ellas el sitio no funciona.

Siempre activas