> ## 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.

# Remesas bancarias: gestiona lotes de cobros y pagos

> Crea, consulta y gestiona remesas bancarias en A3ERP. Añade o elimina efectos de una remesa y filtra u ordena el listado de remesas existentes.

Las remesas son lotes de efectos de cobro o pago agrupados para su tramitación bancaria masiva, como los adeudos directos SEPA o las transferencias de proveedores. Con estos endpoints puedes crear remesas nuevas, consultar las existentes, añadir efectos a una remesa o eliminarlos, y también operar sobre remesas de clientes y proveedores para cobrarlas o pagarlas de forma completa o parcial.

<Tip>
  Recuerda incluir siempre la cabecera `Authorization: Bearer {token}` en todas las peticiones a estos endpoints.
</Tip>

***

## Consultar remesas

### Consultar todas las remesas

Obtiene el listado completo de todas las remesas existentes en la empresa.

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

**Ejemplo de petición**

```http theme={null}
GET /api/cartera/remesas HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Accept: */*
```

**Respuesta `200`** — Array de objetos remesa.

***

### Consultar remesa por ID

Obtiene los detalles de una remesa concreta mediante su identificador.

```http theme={null}
GET https://api.appcloud.es/api/cartera/remesas/{id}
```

<ParamField path="id" type="string" required>
  Identificador único de la remesa.
</ParamField>

**Ejemplo de petición**

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

**Respuestas**

| Código | Descripción           |
| ------ | --------------------- |
| `200`  | Detalles de la remesa |
| `404`  | Remesa no encontrada  |

***

### Filtrar remesas

Obtiene el listado de remesas que cumplen con el filtro especificado.

```http theme={null}
GET https://api.appcloud.es/api/cartera/remesas/filtro/{filtro}
```

<ParamField path="filtro" type="string" required>
  Expresión de filtro a aplicar en la búsqueda de remesas.
</ParamField>

**Ejemplo de petición**

```http theme={null}
GET /api/cartera/remesas/filtro/escobro%3D'T' HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

***

### Ordenar remesas

Obtiene el listado de remesas ordenadas según el criterio especificado.

```http theme={null}
GET https://api.appcloud.es/api/cartera/remesas/order/{order}
```

<ParamField path="order" type="string" required>
  Criterio de ordenamiento para las remesas (p. ej., nombre de campo ascendente o descendente).
</ParamField>

**Ejemplo de petición**

```http theme={null}
GET /api/cartera/remesas/order/fecha HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

***

### Filtrar y ordenar remesas

Combina filtrado y ordenación en una sola llamada.

```http theme={null}
GET https://api.appcloud.es/api/cartera/remesas/filtro/{filtro}/order/{order}
```

<ParamField path="filtro" type="string" required>
  Expresión de filtro a aplicar.
</ParamField>

<ParamField path="order" type="string" required>
  Criterio de ordenamiento de los resultados.
</ParamField>

**Ejemplo de petición**

```http theme={null}
GET /api/cartera/remesas/filtro/escobro%3D'T'/order/fecha HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

***

## Crear remesa

Crea una nueva remesa indicando los efectos de cartera que la formarán.

```http theme={null}
POST https://api.appcloud.es/api/cartera/remesas/crear
```

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

<ParamField body="escobro" type="string">
  Tipo de remesa: `T` para cobro (clientes), `F` para pago (proveedores).
</ParamField>

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

<ParamField body="fecha" type="string">
  Fecha de la remesa en formato `DD/MM/YYYY`.
</ParamField>

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

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

<ParamField body="tipocont" type="string">
  Tipo de contrato bancario.
</ParamField>

<ParamField body="tipomandato" type="string">
  Tipo de mandato SEPA. Valores posibles: `B2B`, `CORE`, `COR1`.
</ParamField>

<ParamField body="Efectos" type="array">
  Lista de efectos de cartera que forman parte de la remesa. Cada elemento debe incluir:

  * `NumCartera` (string) — Número de cartera del efecto.
  * `NumVencimiento` (string) — Número de vencimiento del efecto.
</ParamField>

**Ejemplo de petición**

```http theme={null}
POST /api/cartera/remesas/crear HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "escobro": "T",
  "descue": "T",
  "fecha": "05/09/2023",
  "codban": "1",
  "codmon": "EURO",
  "tipocont": "1",
  "tipomandato": "B2B",
  "Efectos": [
    {
      "NumCartera": "text",
      "NumVencimiento": "text"
    }
  ]
}
```

**Respuesta `201`** — Remesa creada (sin contenido).

<ResponseField name="" type="">
  La respuesta `201` no devuelve cuerpo. Una respuesta `400` indica datos de entrada incorrectos.
</ResponseField>

***

## Cobrar una remesa entera

Cobra todos los efectos de una remesa de clientes en una sola operación.

```http theme={null}
PUT https://api.appcloud.es/api/cartera/cobrarremesa/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa a cobrar.
</ParamField>

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

<ParamField body="repcon" type="string">
  Repercusiones contables (`T`/`F`).
</ParamField>

<ParamField body="descue" type="string">
  Cobro al descuento (`T`/`F`).
</ParamField>

<ParamField body="ctabanco" type="string">
  Cuenta bancaria (p. ej., `57200001`).
</ParamField>

<ParamField body="ctariesgo" type="string">
  Cuenta de riesgo (p. ej., `52080003`).
</ParamField>

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

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

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

<ParamField body="cambio" type="string">
  Tipo de cambio.
</ParamField>

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

<ParamField body="ctacomisiones" type="string">
  Cuenta de comisiones (p. ej., `66900000`).
</ParamField>

<ParamField body="comisiones" type="string">
  Importe de las comisiones (p. ej., `2,5`).
</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.
</ParamField>

**Ejemplo de petición**

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

{
  "repcon": "T",
  "descue": "F",
  "ctabanco": "57200001",
  "ctariesgo": "52080003",
  "fecha": "25/08/2023",
  "fechavalor": "31/08/2023",
  "codban": "1",
  "cambio": "1",
  "ctagastos": "62600000",
  "ctacomisiones": "66900000",
  "comisiones": "2,5",
  "gastos": "30.25",
  "centro1": "MAD",
  "numdoc": "125784po62"
}
```

**Respuesta `200`**

```json theme={null}
{ "message": "Efectos eliminados correctamente." }
```

***

## Cobrar una remesa de forma parcial

Cobra únicamente los efectos indicados dentro de una remesa de clientes.

```http theme={null}
PUT https://api.appcloud.es/api/cartera/cobrarremesaparcial/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa a cobrar parcialmente.
</ParamField>

Acepta los mismos campos del cuerpo que el cobro total, más los siguientes adicionales:

<ParamField body="unasiento" type="string">
  Si se desea generar un único asiento para todos los efectos cobrados (`T`/`F`).
</ParamField>

<ParamField body="Efectos" type="array">
  Lista de efectos concretos a cobrar dentro de la remesa. Cada elemento debe incluir `NumCartera` y `NumVencimiento`.
</ParamField>

**Ejemplo de petición**

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

{
  "repcon": "T",
  "ctabanco": "57200001",
  "fecha": "25/08/2023",
  "unasiento": "T",
  "Efectos": [
    { "NumCartera": "46684", "NumVencimiento": "1" }
  ]
}
```

***

## Pagar una remesa de proveedores

Paga todos los efectos de una remesa de proveedores en una sola operación.

```http theme={null}
PUT https://api.appcloud.es/api/cartera/pagarremesa/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa a pagar.
</ParamField>

Acepta los mismos campos de cuerpo que el cobro de remesa entera. Para pagar solo efectos concretos (pago parcial), añade `unasiento` y el array `Efectos` al cuerpo.

**Ejemplo de pago parcial**

```json theme={null}
{
  "repcon": "T",
  "ctabanco": "57200001",
  "fecha": "25/08/2023",
  "fechavalor": "31/08/2023",
  "codban": "1",
  "cambio": "1",
  "unasiento": "T",
  "Efectos": [
    { "NumCartera": "46684", "NumVencimiento": "1" },
    { "NumCartera": "46683", "NumVencimiento": "1" }
  ]
}
```

***

## Anular cobro de una remesa

Anula el cobro previamente registrado de una remesa de clientes.

```http theme={null}
DELETE https://api.appcloud.es/api/cartera/anularcobraremesa/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa cuyo cobro se desea anular.
</ParamField>

**Ejemplo de petición**

```http theme={null}
DELETE /api/cartera/anularcobraremesa/{numremesa} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```json theme={null}
{ "message": "cobro anulado correctamente" }
```

***

## Anular pago de una remesa

Anula el pago previamente registrado de una remesa de proveedores.

```http theme={null}
DELETE https://api.appcloud.es/api/cartera/anularpagoremesa/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa cuyo pago se desea anular.
</ParamField>

**Ejemplo de petición**

```http theme={null}
DELETE /api/cartera/anularpagoremesa/{numremesa} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
```

**Respuesta `200`**

```json theme={null}
{ "message": "pago anulado correctamente" }
```

***

## Añadir efectos a una remesa existente

Agrega nuevos efectos de cartera a una remesa ya creada.

```http theme={null}
POST https://api.appcloud.es/api/cartera/remesas/anadeefectos/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa a la que se añadirán los efectos.
</ParamField>

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

<ParamField body="Efectos" type="array" required>
  Lista de efectos a añadir. Cada elemento debe incluir:

  * `NumCartera` (string) — Número de cartera del efecto.
  * `NumVencimiento` (string) — Número de vencimiento del efecto.
</ParamField>

**Ejemplo de petición**

```http theme={null}
POST /api/cartera/remesas/anadeefectos/{numremesa} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "Efectos": [
    {
      "NumCartera": "text",
      "NumVencimiento": "text"
    }
  ]
}
```

**Respuesta `200`**

```json theme={null}
{ "message": "Efectos añadidos correctamente." }
```

***

## Eliminar efectos de una remesa existente

Elimina efectos específicos de una remesa. La remesa debe conservar al menos un efecto tras la operación.

```http theme={null}
POST https://api.appcloud.es/api/cartera/remesas/eliminaefectos/{numremesa}
```

<ParamField path="numremesa" type="string" required>
  Número de la remesa de la que se eliminarán los efectos.
</ParamField>

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

<ParamField body="Efectos" type="array" required>
  Lista de efectos a eliminar. Cada elemento debe incluir `NumCartera` y `NumVencimiento`.
</ParamField>

**Ejemplo de petición**

```http theme={null}
POST /api/cartera/remesas/eliminaefectos/{numremesa} HTTP/1.1
Host: api.appcloud.es
Authorization: Bearer {token}
Content-Type: application/json

{
  "Efectos": [
    {
      "NumCartera": "text",
      "NumVencimiento": "text"
    }
  ]
}
```

<Warning>
  No es posible dejar una remesa sin efectos. Si intentas eliminar todos los efectos de una remesa, la API devolverá un error `400`.
</Warning>

**Respuesta `200`**

```json theme={null}
{ "message": "Efectos eliminados correctamente." }
```

**Respuestas de error**

| Código | Descripción                                                |
| ------ | ---------------------------------------------------------- |
| `400`  | Solicitud incorrecta (p. ej., remesa quedaría sin efectos) |
| `401`  | No autorizado                                              |
| `404`  | Remesa no encontrada                                       |
