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

# Rechazar factura

El servicio permite al cliente rechazar una factura electrónica de venta emitida por la empresa, indicando la causal de rechazo, desde el portal de clientes, en línea en formato JSON.

El rechazo lo procesa el módulo de documentos electrónicos de SEDI-ERP sobre la factura indicada por su identificador único. Para aceptar una factura se utiliza el servicio de [aceptación de facturas](https://tech.sedierp.com/aceptar-factura.md).

El método de solicitud es POST y se requiere un encabezado "Authorization" para la autenticación, que debe contener el **AccessToken** (JWT) obtenido previamente del servicio de [inicio de sesión](https://tech.sedierp.com/inicio-de-sesion.md).

## Prerequisitos

Antes de rechazar una factura, se debe contar con los siguientes datos:

* AccessToken solicitado mediante el servicio de [inicio de sesión](https://tech.sedierp.com/inicio-de-sesion.md)
* Identificador único de la factura (UniqueID), obtenido del servicio de [facturas del cliente](https://tech.sedierp.com/consulta-general-facturas.md)
* Código de la causal de rechazo, obtenido del servicio de [causales de rechazo de facturas](https://tech.sedierp.com/causales-de-rechazo-facturas.md)

## Rechazar factura

**Request URL:** [https://portal.sedierp.com/API\_FAC/api/Facturas/FacturasRechazar](https://portal.sedierp.com/API_FAC/api/Facturas/FacturasRechazar)\
**Tipo:** POST \
**Content Type:** application/json

**UniqueID** `GUID` *required*

Identificador único de la factura que se rechazará.

**CausalRechazoFacturaID** `int` *required*

Código de la causal de rechazo (ID). Se obtiene del servicio de [causales de rechazo de facturas](https://tech.sedierp.com/causales-de-rechazo-facturas.md).

**Codigo** `string`

Código complementario del rechazo que se envía al proceso de documentos electrónicos. Máximo 4 caracteres: los caracteres adicionales se descartan.

**DirIP** `string` *required*

Dirección IP del dispositivo desde el que se envía el rechazo (máx. 50 caracteres).

**Usuario** `int` *required*

Código del usuario que envía el rechazo (ID). Se recomienda enviar el `TerceroID` del servicio de [datos del cliente](https://tech.sedierp.com/datos-del-cliente.md).

```bash theme={null}
curl --location 'https://portal.sedierp.com/API_FAC/api/Facturas/FacturasRechazar' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data '{
	"UniqueID": "698236ef-c704-4063-bf81-f114677aced7",
	"CausalRechazoFacturaID": 2,
	"Codigo": null,
	"DirIP": "181.52.104.27",
	"Usuario": 48213
}'
```

### Validaciones

El servicio realiza las siguientes validaciones. Si alguna no se cumple, no se rechaza la factura y se retorna HTTP 400 con el error correspondiente.

* `UniqueID`, `CausalRechazoFacturaID`, `DirIP` y `Usuario` son obligatorios.
* La factura debe cumplir las validaciones del módulo de documentos electrónicos para ser rechazada. Si el proceso retorna un error, se deshace la operación y se retorna el detalle precedido de "Error:".

### Respuesta

**TipoSalida** `string`

Resultado de la operación: "OK".

**Codigo** `int`

Código de salida retornado por el proceso de rechazo.

**Descripcion** `string`

Descripción del resultado retornada por el proceso de rechazo.

Cuando ocurre un error, el servicio responde HTTP 400 con el campo `Message`, que contiene el detalle del error precedido de "Error:". Si el AccessToken no se envía, es inválido o expiró, el servicio responde HTTP 401 (`{"Code": 401, "Message": "El TokenAcceso no es valido"}`).

```json Request theme={null}
{
  "UniqueID": "698236ef-c704-4063-bf81-f114677aced7",
  "CausalRechazoFacturaID": 2,
  "Codigo": null,
  "DirIP": "181.52.104.27",
  "Usuario": 48213
}
```

```json Exitosa theme={null}
{
    "total": 1,
    "rows": [
        {
            "TipoSalida": "OK",
            "Codigo": 20817,
            "Descripcion": "Transacción exitosa"
        }
    ],
    "result": 1
}
```

```json Error theme={null}
{
    "Message": "Error: <detalle del error retornado por el proceso de rechazo>"
}
```

```json Validación theme={null}
{
    "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "errors": {
        "CausalRechazoFacturaID": [
            "The CausalRechazoFacturaID field is required."
        ]
    },
    "traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.