---
title: API REST – Operaciones CRUD
description: "--- ## ListTypes — Listar los módulos disponibles Esta operación devuelve todos los módulos accesibles a través de la API. > **GET** `https://apps.kafinea.com/{instance}/webservice.php` | Parámetro | Tipo | Obligatorio | Descripción | | --- | --- | --- | ---…"
url: "https://www.kafinea.com/es/documentacion/api/api-rest-operaciones-crud/"
updated: "2026-04-03"
category: API
---

# API REST – Operaciones CRUD

---

## ListTypes — Listar los módulos disponibles

Esta operación devuelve todos los módulos accesibles a través de la API.

> **GET** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `listtypes` |
| `sessionName` | string | sí | Identificador de sesión |

**Ejemplo curl:**

```bash
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=listtypes&sessionName=YOUR_SESSION_ID"
```

---

## Describe — Describir un módulo

Esta operación permite conocer los campos de un módulo (tipo, carácter obligatorio) y las acciones disponibles.

> **GET** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `describe` |
| `sessionName` | string | sí | Identificador de sesión |
| `elementType` | string | sí | Nombre del módulo (p. ej.: `Contacts`) |

**Ejemplo curl:**

```bash
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=describe&sessionName=YOUR_SESSION_ID&elementType=Contacts"
```

---

## Retrieve — Recuperar una entidad

Recupera una entidad específica por su ID de Webservice (p. ej.: `21x3456`).

> **GET** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `retrieve` |
| `sessionName` | string | sí | Identificador de sesión |
| `id` | string | sí | ID de Webservice de la entidad (p. ej.: `21x3456`) |

**Ejemplo curl:**

```bash
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=retrieve&sessionName=YOUR_SESSION_ID&id=21x3456"
```

---

## Create — Crear una entidad

Crea una nueva entidad en un módulo. Deben incluirse todos los campos obligatorios. Los valores de campos vinculados a otros módulos deben usar el formato de IDs de Webservice (p. ej.: `21x3456`).

> **POST** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `create` |
| `sessionName` | string | sí | Identificador de sesión |
| `element` | JSON | sí | Objeto JSON de la entidad (`fieldname: fieldvalue`) |
| `elementType` | string | sí | Nombre del módulo (p. ej.: `Contacts`) |

**Ejemplo curl:**

```bash
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php 
  -d "operation=create" 
  -d "sessionName=YOUR_SESSION_ID" 
  -d 'element={"lastname":"Dupont","email":"dupont@example.com","assigned_user_id":"19x1"}' 
  -d "elementType=Contacts"
```

> **¡Atención!** Para los módulos de tipo inventario (facturas, presupuestos, pedidos, etc.), es obligatorio incluir los siguientes campos en el objeto `element`:
>
>
>
> - `productid` — ID de Webservice del producto
> - `hdnTaxType` — `Individual` o `Group`
> - `LineItems` — Tabla de productos o servicios

---

## Update — Actualizar una entidad

Actualiza una entidad existente. Deben incluirse **todos los campos** (no solo los modificados). El objeto `element` debe contener el ID de Webservice de la entidad (p. ej.: `"id": "21x3456"`).

> **POST** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `update` |
| `sessionName` | string | sí | Identificador de sesión |
| `element` | JSON | sí | Objeto JSON completo de la entidad (con `id`) |
| `elementType` | string | sí | Nombre del módulo |

**Ejemplo curl:**

```bash
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php 
  -d "operation=update" 
  -d "sessionName=YOUR_SESSION_ID" 
  -d 'element={"id":"21x3456","lastname":"Dupont","email":"nouveau@example.com","assigned_user_id":"19x1"}' 
  -d "elementType=Contacts"
```

### Actualización parcial (Partial Edit) en entidades bloqueadas

Si necesita modificar algunos campos en entidades bloqueadas (Permanent Lock, como una factura validada), puede utilizar la edición parcial sin desbloquear el registro.

> **POST** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `update` |
| `sessionName` | string | sí | Identificador de sesión |
| `partial_edit` | int | sí | Debe ser `1` — al mismo nivel que `operation`, no en `element` |
| `element` | JSON | sí | Objeto JSON con `id` y todos los campos obligatorios |
| `elementType` | string | sí | Nombre del módulo |

**Funcionamiento y restricciones:**

- **Campos permitidos:** estados, usuario asignado, referencias de pedido y todos los campos personalizados (custom fields).
- **Líneas de productos bloqueadas:** cualquier modificación de los artículos, precios o cantidades (Line Items) se ignora en modo de edición parcial.
- **Gestión de errores:** sin el flag `partial_edit=1`, la API devuelve `ACCESSDENIED`. Si el módulo no admite este modo: `ACCESSDENIED – Partial edit is not supported for module X`.

> **¡Atención!** Incluso en modo `partial_edit`, el objeto `element` debe contener **todos los campos obligatorios** del módulo, exactamente como para una actualización clásica.

**Ejemplo curl:**

```bash
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php 
  -d "operation=update" 
  -d "sessionName=YOUR_SESSION_ID" 
  -d "partial_edit=1" 
  -d 'element={"id":"7x1234","invoicestatus":"Paid","assigned_user_id":"19x1"}' 
  -d "elementType=Invoice"
```

---

## Delete — Eliminar una entidad

Elimina una entidad específica por su ID de Webservice (p. ej.: `21x3456`).

> **POST** `https://apps.kafinea.com/{instance}/webservice.php`

| Parámetro | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `operation` | string | sí | Debe ser `delete` |
| `sessionName` | string | sí | Identificador de sesión |
| `id` | string | sí | ID de Webservice de la entidad (p. ej.: `21x3456`) |

**Ejemplo curl:**

```bash
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php 
  -d "operation=delete" 
  -d "sessionName=YOUR_SESSION_ID" 
  -d "id=21x3456"
```

---

## Referencias asociadas 🔗

- [Introducción a la API](https://www.kafinea.com/es/documentation/api/api-rest-introduccion/)
- [Autenticación](https://www.kafinea.com/es/documentation/api/api-rest-autenticacion/)
- [Operaciones relacionadas](https://www.kafinea.com/es/documentation/api/api-rest-relaciones-entre-entidades/)
- [Solicitudes y consultas](https://www.kafinea.com/es/documentation/api/api-rest-solicitudes-y-consultas/)
