> ## Documentation Index
> Fetch the complete documentation index at: https://a3erpapi.appcloud.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Cartera: consulta y gestión de anticipos en A3ERP

> Consulta los anticipos de clientes y proveedores, crea nuevos anticipos y asígnalos a facturas usando la API de cartera de A3ERP.

Los endpoints de cartera te permiten gestionar los **anticipos** (entregas a cuenta) de clientes y proveedores en A3ERP. Puedes consultar todos los anticipos existentes junto con el importe pendiente de asignar, registrar nuevos anticipos de cobro o pago, y aplicar un anticipo existente a una factura concreta. Esta funcionalidad es especialmente útil cuando un cliente realiza pagos por adelantado antes de la emisión de la factura, o cuando tu empresa efectúa pagos a cuenta a un proveedor.

***

## GET — Anticipos de un cliente

Consulta todos los anticipos de un cliente y la cantidad pendiente de asignar a facturas.

<ParamField path="id" type="string" required>
  Código del cliente cuyos anticipos quieres consultar.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Token JWT con prefijo `Bearer`.
</ParamField>

```http theme={null}
GET https://servidor:<puerto>/api/cartera/anticiposclientes/{id}
Authorization: Bearer {token}
```

**Ejemplo:**

```http theme={null}
GET https://servidor:5555/api/cartera/anticiposclientes/50
Authorization: Bearer {token}
```

**Respuesta 200 — Lista de anticipos del cliente:**

```json theme={null}
[
  {
    "codcli": "    4997",
    "nomcli": "TALLERES ILORCITANA, S.L.",
    "numcartera": 45952,
    "fecha": "2008-06-25T00:00:00.000+02:00",
    "importemon": 258.81,
    "disponible": 0,
    "docpag": "       1"
  }
]
```

**Campos de la respuesta:**

<ResponseField name="codcli" type="string">
  Código del cliente. Devuelto como cadena de 8 caracteres rellena con espacios a la izquierda.
</ResponseField>

<ResponseField name="nomcli" type="string">
  Nombre o razón social del cliente.
</ResponseField>

<ResponseField name="numcartera" type="integer">
  Número de cartera del anticipo. Este valor es el que se utiliza como `numanti` al asignar el anticipo a una factura.
</ResponseField>

<ResponseField name="fecha" type="string">
  Fecha del anticipo en formato ISO 8601.
</ResponseField>

<ResponseField name="importemon" type="number">
  Importe total del anticipo en la moneda del documento.
</ResponseField>

<ResponseField name="disponible" type="number">
  Importe pendiente de asignar a facturas. Un valor `0` indica que el anticipo ya está completamente aplicado.
</ResponseField>

<ResponseField name="docpag" type="string">
  Documento de pago asociado al anticipo.
</ResponseField>

| Código | Descripción                             |
| ------ | --------------------------------------- |
| `200`  | Lista de anticipos del cliente          |
| `401`  | Unauthorized — Token ausente o inválido |

***

## GET — Anticipos de un proveedor

Consulta todos los anticipos de un proveedor y la cantidad pendiente de asignar a facturas de compra.

<ParamField path="id" type="string" required>
  Código del proveedor cuyos anticipos quieres consultar.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Token JWT con prefijo `Bearer`.
</ParamField>

```http theme={null}
GET https://servidor:<puerto>/api/cartera/anticiposproveedor/{id}
Authorization: Bearer {token}
```

**Ejemplo:**

```http theme={null}
GET https://servidor:5555/api/cartera/anticiposproveedor/15
Authorization: Bearer {token}
```

**Respuesta 200 — Lista de anticipos del proveedor:**

```json theme={null}
[
  {
    "codcli": "    4997",
    "nomcli": "TALLERES ILORCITANA, S.L.",
    "numcartera": 45952,
    "fecha": "2008-06-25T00:00:00.000+02:00",
    "importemon": 258.81,
    "disponible": 0,
    "docpag": "       1"
  }
]
```

La estructura de respuesta es idéntica a la de anticipos de cliente. El campo `codcli` contendrá en este caso el código del proveedor.

| Código | Descripción                             |
| ------ | --------------------------------------- |
| `200`  | Lista de anticipos del proveedor        |
| `401`  | Unauthorized — Token ausente o inválido |

***

## POST — Crear un anticipo

Registra un nuevo anticipo de cobro o pago en la cartera de A3ERP.

<ParamField header="Authorization" type="string" required>
  Token JWT con prefijo `Bearer`.
</ParamField>

```http theme={null}
POST https://servidor:<puerto>/api/cartera/anticipo
Authorization: Bearer {token}
Content-Type: application/json
```

**Campos del cuerpo:**

<ParamField body="esCobro" type="string" required>
  Indica si el anticipo es un cobro o un pago:

  * `T` — Cobro (anticipo de cliente).
  * `F` — Pago (anticipo a proveedor).
</ParamField>

<ParamField body="codigo" type="string" required>
  Código del cliente (si `esCobro` es `T`) o del proveedor (si `esCobro` es `F`).
</ParamField>

<ParamField body="codban" type="string" required>
  Código del banco o caja asociado al anticipo.
</ParamField>

<ParamField body="docpag" type="string" required>
  Código del documento de pago (p. ej. `L` para letra, `T` para transferencia).
</ParamField>

<ParamField body="tipcon" type="string" required>
  Tipo contable del anticipo.
</ParamField>

<ParamField body="codmon" type="string" required>
  Código de moneda (p. ej. `EURO`).
</ParamField>

<ParamField body="fechavencimiento" type="string" required>
  Fecha de vencimiento del anticipo en formato `DD/MM/AAAA`.
</ParamField>

<ParamField body="fechacontable" type="string" required>
  Fecha contable del anticipo en formato `DD/MM/AAAA`.
</ParamField>

<ParamField body="importe" type="string" required>
  Importe del anticipo.
</ParamField>

<ParamField body="observaciones" type="string">
  Texto libre con observaciones sobre el anticipo.
</ParamField>

**Ejemplo — Crear un anticipo de pago a proveedor:**

```json theme={null}
{
  "esCobro": "F",
  "codigo": "5",
  "codban": " 3",
  "docpag": "L",
  "tipcon": "1",
  "codmon": "EURO",
  "fechavencimiento": "25/05/2022",
  "fechacontable": "25/04/2022",
  "importe": "500",
  "observaciones": "Entrega a cuenta compra"
}
```

**Respuesta 200:** El anticipo se ha creado correctamente (sin cuerpo de respuesta).

| Código | Descripción                             |
| ------ | --------------------------------------- |
| `200`  | Anticipo creado correctamente           |
| `401`  | Unauthorized — Token ausente o inválido |

***

## POST — Asignar anticipo a una factura

Aplica un anticipo existente (ya registrado en cartera) a una factura, reduciendo el importe pendiente de la factura en la cantidad especificada.

<ParamField header="Authorization" type="string" required>
  Token JWT con prefijo `Bearer`.
</ParamField>

```http theme={null}
POST https://servidor:<puerto>/api/cartera/asignaranticipofactura
Authorization: Bearer {token}
Content-Type: application/json
```

**Campos del cuerpo:**

<ParamField body="escompra" type="string" required>
  Indica si la factura es de compra o de venta:

  * `T` — Factura de compra.
  * `F` — Factura de venta.
</ParamField>

<ParamField body="idfacv" type="string" required>
  Identificador interno de la factura a la que asignar el anticipo.
</ParamField>

<ParamField body="numanti" type="string" required>
  Número de cartera del anticipo. Corresponde al campo `numcartera` devuelto por las consultas de anticipos de cliente o proveedor.
</ParamField>

<ParamField body="codmon" type="string" required>
  Código de moneda del anticipo (p. ej. `EURO`).
</ParamField>

<ParamField body="importe" type="string" required>
  Importe a aplicar del anticipo sobre la factura. Puede ser menor o igual al importe `disponible` del anticipo.
</ParamField>

**Ejemplo — Asignar un anticipo a una factura de compra:**

```json theme={null}
{
  "escompra": "T",
  "idfacv": "23023",
  "numanti": "46369",
  "codmon": "EURO",
  "importe": "30"
}
```

**Respuesta 200:** El anticipo se ha asignado correctamente a la factura (sin cuerpo de respuesta).

<Note>
  El valor de `numanti` debe ser el campo `numcartera` obtenido en la consulta de anticipos del cliente o proveedor, no el código del cliente/proveedor.
</Note>

| Código | Descripción                             |
| ------ | --------------------------------------- |
| `200`  | Anticipo asignado correctamente         |
| `401`  | Unauthorized — Token ausente o inválido |
