> ## 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 avanzada: cobros, pagos y vencimientos en A3ERP

> Gestiona el ciclo completo de cobros, pagos, recepciones, envíos, devoluciones y anulaciones de vencimientos de cartera en A3ERP mediante la API.

Los endpoints avanzados de cartera te permiten gestionar el **ciclo de vida completo de los vencimientos**: cobrarlos, pagarlos, recibirlos, enviarlos, bloquearlos, devolverlos, imputar gastos y anular cualquiera de estas operaciones. Además, puedes ligar o desligar conjuntos de efectos de cartera a facturas concretas, todo desde una misma interfaz REST.

<Tip>
  El parámetro `numcartera` es el campo `numcartera` que devuelven las consultas de anticipos. El parámetro `numvencimiento` es el número secuencial del vencimiento dentro de ese conjunto de efectos.
</Tip>

Todos los endpoints siguen el patrón:

```
PUT https://api.appcloud.es/api/cartera/{accion}/{numcartera}/numvencimiento/{numvencimiento}
```

***

## Parámetros de ruta comunes

<ParamField path="numcartera" type="string" required>
  Número identificador del conjunto de efectos de cartera.
</ParamField>

<ParamField path="numvencimiento" type="string" required>
  Número del vencimiento dentro del conjunto de cartera indicado.
</ParamField>

***

## Cobrar vencimiento

<Note>
  Registra el cobro de un efecto de cartera de cliente. El importe cobrado no tiene que coincidir necesariamente con el importe del vencimiento.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/cobrar/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si el cobro debe generar repercusiones contables (`T`) o no (`F`).
</ParamField>

<ParamField body="descue" type="string">
  Indica si es un cobro al descuento (`T`) o no (`F`).
</ParamField>

<ParamField body="importe" type="string">
  Importe que se cobra. No tiene que coincidir con el del vencimiento.
</ParamField>

<ParamField body="numcta" type="string">
  Número de cuenta bancaria.
</ParamField>

<ParamField body="ctariesgo" type="string">
  Número de cuenta de deudas por efectos al descuento del banco.
</ParamField>

<ParamField body="fecha" type="string">
  Fecha del cobro (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor del cobro (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="codban" type="string">
  Código del banco.
</ParamField>

<ParamField body="cambio" type="string">
  Tipo de cambio entre la moneda del cobro y la moneda principal.
</ParamField>

<ParamField body="ctagastos" type="string">
  Cuenta contable de gastos del cobro.
</ParamField>

<ParamField body="gastos" type="string">
  Gastos imputados al cobro.
</ParamField>

<ParamField body="centro1" type="string">
  Centro de coste 1.
</ParamField>

<ParamField body="centro2" type="string">
  Centro de coste 2.
</ParamField>

<ParamField body="centro3" type="string">
  Centro de coste 3.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/cobrar/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "descue": "F",
  "importe": "500",
  "numcta": "57200008"
}
```

**Respuesta `200`**

```
Vencimiento cobrado exitosamente
```

***

## Pagar vencimiento

<Note>
  Registra el pago de un efecto de cartera de proveedor.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/pagar/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si el pago debe generar repercusiones contables (`T`) o no (`F`).
</ParamField>

<ParamField body="importe" type="string">
  Importe que se paga. No tiene que coincidir con el del vencimiento.
</ParamField>

<ParamField body="numcta" type="string">
  Número de cuenta bancaria.
</ParamField>

<ParamField body="fecha" type="string">
  Fecha del pago (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor del pago.
</ParamField>

<ParamField body="codban" type="string">
  Código del banco.
</ParamField>

<ParamField body="cambio" type="string">
  Tipo de cambio entre la moneda del pago y la moneda principal.
</ParamField>

<ParamField body="ctagastos" type="string">
  Cuenta de gastos del pago.
</ParamField>

<ParamField body="gastos" type="string">
  Gastos imputados al pago.
</ParamField>

<ParamField body="centro1" type="string">
  Centro de coste 1.
</ParamField>

<ParamField body="centro2" type="string">
  Centro de coste 2.
</ParamField>

<ParamField body="centro3" type="string">
  Centro de coste 3.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/pagar/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "importe": "500",
  "numcta": "57200008"
}
```

**Respuesta `200`**

```
Vencimiento pagado exitosamente
```

***

## Recibir vencimiento

<Note>
  Marca un vencimiento de cartera de cliente como recibido físicamente (p. ej., recepción de un pagaré o cheque).
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/recibir/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si la recepción debe generar repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="fecha" type="string">
  Fecha de la recepción (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor de la recepción.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/recibir/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "fecha": "25/08/2023",
  "numdoc": "125784po62"
}
```

**Respuesta `200`**

```
Vencimiento recibido exitosamente
```

***

## Enviar vencimiento

<Note>
  Marca un vencimiento de cartera de proveedor como enviado (p. ej., envío de una remesa al banco).
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/enviar/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si el envío debe generar repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="fecha" type="string">
  Fecha del envío (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor del envío.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/enviar/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "fecha": "25/08/2023",
  "numdoc": "125784po62"
}
```

**Respuesta `200`**

```
Vencimiento enviado exitosamente
```

***

## Bloquear vencimiento

<Note>
  Bloquea un vencimiento para impedir que sea procesado por otras operaciones. Es el único endpoint de esta sección que usa método `GET`.
</Note>

```http theme={null}
GET https://api.appcloud.es/api/cartera/bloquear/{numcartera}/numvencimiento/{numvencimiento}
```

No requiere cuerpo en la petición.

**Ejemplo de petición**

```http theme={null}
GET /api/cartera/bloquear/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```
Vencimiento bloqueado exitosamente
```

***

## Actualizar riesgo del vencimiento

<Note>
  Actualiza el estado de riesgo asociado a un vencimiento, por ejemplo cuando un efecto está en descuento y se necesita reflejar el riesgo en la contabilidad.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/actualizar/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si la actualización del riesgo debe generar repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="fecha" type="string">
  Fecha de la actualización del riesgo (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/actualizar/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "fecha": "25/08/2023",
  "numdoc": "125784po62"
}
```

**Respuesta `200`**

```
Riesgo del vencimiento actualizado exitosamente
```

***

## Devolver vencimiento

<Note>
  Registra la devolución de un cobro ya realizado. Puede imputar gastos de devolución (p. ej., comisiones bancarias) a una cuenta contable específica.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/devolver/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si la devolución debe generar repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="fecha" type="string">
  Fecha de la devolución (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor de la devolución.
</ParamField>

<ParamField body="importe" type="string">
  Importe que se devuelve.
</ParamField>

<ParamField body="gastos" type="string">
  Gastos imputados a la devolución.
</ParamField>

<ParamField body="ctagastos" type="string">
  Cuenta contable de gastos de la devolución.
</ParamField>

<ParamField body="centro1" type="string">
  Centro de coste 1.
</ParamField>

<ParamField body="centro2" type="string">
  Centro de coste 2.
</ParamField>

<ParamField body="centro3" type="string">
  Centro de coste 3.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

<ParamField body="comision" type="string">
  Importe de la comisión bancaria de la devolución.
</ParamField>

<ParamField body="contabilizargastos" type="string">
  Indica si se deben contabilizar los gastos de la devolución (`T`/`F`).
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/devolver/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "fecha": "25/08/2023",
  "numdoc": "125784po62",
  "ctagastos": "62600000",
  "comision": "30.25",
  "centro1": "MAD"
}
```

**Respuesta `200`**

```
Devolución registrada exitosamente
```

***

## Imputar gastos al vencimiento

<Note>
  Imputa gastos adicionales (como comisiones o gastos bancarios) a un vencimiento previamente devuelto.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/imputargastos/{numcartera}/numvencimiento/{numvencimiento}
```

**Cuerpo de la petición (application/json)**

<ParamField body="repcon" type="string">
  Indica si la imputación debe generar repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="fecha" type="string">
  Fecha de la imputación (formato `DD/MM/YYYY`).
</ParamField>

<ParamField body="fechavalor" type="string">
  Fecha valor de la devolución.
</ParamField>

<ParamField body="gastos" type="string">
  Gastos a imputar.
</ParamField>

<ParamField body="ctagastos" type="string">
  Cuenta contable de gastos.
</ParamField>

<ParamField body="centro1" type="string">
  Centro de coste 1.
</ParamField>

<ParamField body="centro2" type="string">
  Centro de coste 2.
</ParamField>

<ParamField body="centro3" type="string">
  Centro de coste 3.
</ParamField>

<ParamField body="numdoc" type="string">
  Número de documento del asiento contable.
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/imputargastos/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "repcon": "T",
  "fecha": "25/08/2023",
  "numdoc": "125784po62",
  "ctagastos": "62600000",
  "centro1": "MAD"
}
```

**Respuesta `200`**

```
Gastos imputados exitosamente
```

***

## Anulación de operaciones de cartera

<Note>
  Anula cualquier operación previamente realizada sobre un vencimiento. El parámetro de ruta `variable` determina qué operación se anula.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/{variable}/{numcartera}/numvencimiento/{numvencimiento}
```

<ParamField path="variable" type="string" required>
  Operación a anular. Valores posibles:

  | Valor                       | Operación anulada                 |
  | --------------------------- | --------------------------------- |
  | `anularcobro`               | Anula un cobro registrado         |
  | `anularpago`                | Anula un pago registrado          |
  | `anularrecepcion`           | Anula una recepción               |
  | `anularenvio`               | Anula un envío                    |
  | `anularbloqueo`             | Desbloquea el vencimiento         |
  | `anulardevolucion`          | Anula una devolución              |
  | `anularimputacion`          | Anula una imputación de gastos    |
  | `anularactualizacionriesgo` | Anula una actualización de riesgo |
  | `anularanticipo`            | Anula un anticipo                 |
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/anularcobro/{numcartera}/numvencimiento/{numvencimiento} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```
Operación anulada exitosamente
```

***

## Ligar cartera a factura

<Note>
  Liga el conjunto de efectos de cartera con el número de cartera indicado a la factura identificada por su ID. El parámetro `Escobro` determina si se ejecuta el cobro al ligar o solo se establece el vínculo.
</Note>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/ligar/{numcartera}/IdFactura/{idfactura}/Escobro/{T_o_F}
```

<ParamField path="idfactura" type="string" required>
  ID de la factura a la que se desea ligar la cartera.
</ParamField>

<ParamField path="T_o_F" type="string" required>
  Indica si se realiza el cobro al ligar (`T`) o únicamente se establece el vínculo sin cobrar (`F`).
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/ligar/46684/IdFactura/1023/Escobro/T HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```
Cartera ligada correctamente a la factura
```

***

## Desligar cartera de factura

<Warning>
  Esta operación desvincula todos los efectos del conjunto de cartera indicado de la factura a la que estaban ligados. Asegúrate de que el desligado no rompa la coherencia contable antes de ejecutarlo.
</Warning>

```http theme={null}
PUT https://api.appcloud.es/api/cartera/desligar/{numcartera}/IdFactura/{idfactura}/Escobro/{T_o_F}
```

<ParamField path="idfactura" type="string" required>
  ID de la factura de la que se desea desligar la cartera.
</ParamField>

<ParamField path="T_o_F" type="string" required>
  Indica si se realiza el escobro al desligar (`T`) o no (`F`).
</ParamField>

**Ejemplo de petición**

```http theme={null}
PUT /api/cartera/desligar/46684/IdFactura/1023/Escobro/F HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```
Cartera desligada correctamente a la factura
```
