# Consulta CPE

Consulta CPE mediante una consulta autenticada.

POST https://api.datosperu.net/api/v1/sunat/cpe

## Autenticación

Authorization: Bearer seguido de una API Key de DatosPerú. Cuenta verificada y permiso para el endpoint. Credencial solo en servidor. Una consulta exitosa consume un crédito.

## Esquema de entrada

```json
{
  "type": "object",
  "properties": {
    "ruc_emisor": {
      "type": "string",
      "description": "RUC Emisor del comprobante",
      "pattern": "^[0-9]{11}$",
      "maxLength": 200,
      "minLength": 1
    },
    "codigo_tipo_documento": {
      "type": "string",
      "description": "Tipo Documento del comprobante",
      "maxLength": 200,
      "minLength": 1
    },
    "serie_documento": {
      "type": "string",
      "description": "Serie del comprobante",
      "maxLength": 200,
      "minLength": 1
    },
    "numero_documento": {
      "type": "string",
      "description": "Correlativo del comprobante",
      "maxLength": 200,
      "minLength": 1
    },
    "fecha_de_emision": {
      "type": "string",
      "description": "Debe tener el formato dd/mm/yyyy",
      "maxLength": 200,
      "minLength": 1
    },
    "total": {
      "type": "string",
      "description": "Total del comprobante",
      "maxLength": 200,
      "minLength": 1
    }
  },
  "additionalProperties": false,
  "required": [
    "ruc_emisor",
    "codigo_tipo_documento",
    "serie_documento",
    "numero_documento",
    "fecha_de_emision",
    "total"
  ]
}
```

## Ejemplo ilustrativo (sustituye por datos autorizados)

```sh
curl --request POST 'https://api.datosperu.net/api/v1/sunat/cpe' \
  --header "Authorization: Bearer $DATOSPERU_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "ruc_emisor": "20123456789",
  "codigo_tipo_documento": "01",
  "serie_documento": "F001",
  "numero_documento": "1",
  "fecha_de_emision": "01/09/2026",
  "total": "100.00"
}'
```

## Schema de data

Una respuesta exitosa contiene success: true, data y meta: {request_id, timestamp}. Campos opcionales o nulos según la fuente.

```json
{
  "type": [
    "object",
    "null"
  ],
  "description": "Datos detallados de la respuesta",
  "properties": {
    "ruc_emisor": {
      "type": [
        "string",
        "null"
      ],
      "description": "RUC del emisor del comprobante"
    },
    "codigo_tipo_documento": {
      "type": [
        "string",
        "null"
      ],
      "description": "Código del tipo de documento (ej. 01, 03)"
    },
    "serie_documento": {
      "type": [
        "string",
        "null"
      ],
      "description": "Serie del comprobante"
    },
    "numero_documento": {
      "type": [
        "string",
        "null"
      ],
      "description": "Número del comprobante"
    },
    "fecha_de_emision": {
      "type": [
        "string",
        "null"
      ],
      "description": "Fecha de emisión del comprobante en formato dd/mm/yyyy"
    },
    "total": {
      "type": [
        "number",
        "null"
      ],
      "description": "Importe total declarado en el comprobante"
    },
    "comprobante_estado_codigo": {
      "type": [
        "string",
        "null"
      ],
      "description": "Código del estado del comprobante"
    },
    "comprobante_estado_descripcion": {
      "type": [
        "string",
        "null"
      ],
      "description": "Descripción del estado del comprobante"
    },
    "empresa_estado_codigo": {
      "type": [
        "string",
        "null"
      ],
      "description": "Código del estado del contribuyente emisor"
    },
    "empresa_estado_description": {
      "type": [
        "string",
        "null"
      ],
      "description": "Descripción del estado del contribuyente emisor"
    },
    "empresa_condicion_codigo": {
      "type": [
        "string",
        "null"
      ],
      "description": "Código de la condición del contribuyente emisor"
    },
    "empresa_condicion_descripcion": {
      "type": [
        "string",
        "null"
      ],
      "description": "Descripción de la condición del contribuyente emisor"
    },
    "observaciones": {
      "type": [
        "array",
        "null"
      ],
      "description": "Observaciones reportadas por SUNAT",
      "items": {
        "type": [
          "string",
          "null"
        ]
      }
    }
  },
  "additionalProperties": false
}
```

## Errores

- HTTP 401: API Key ausente, inválida o revocada. Revisa la credencial.
- HTTP 403: Cuenta, verificación o permiso insuficiente. Revisa tu acceso.
- HTTP 404: Sin resultados o ruta inexistente. Comprueba los datos y el endpoint.
- HTTP 422: Parámetros inválidos. Corrige el cuerpo antes de reintentar.
- HTTP 429: Límite por minuto o cuota del periodo. Revisa el código de error y tu consumo.
- HTTP 502 / 504: Error o demora de la fuente. Reintenta con espera y un máximo de intentos.
- HTTP 503: Servicio no disponible o pendiente de configuración. Consulta el estado.

[OpenAPI completo](https://datosperu.net/openapi.json) · [Versión HTML](https://datosperu.net/docs/sunat/cpe)
