Skip to main content

GET /api/notas-credito

Lista todas las notas de crédito de la empresa activa.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Consulta

No requiere parámetros. Los resultados están paginados (15 por página).

Respuesta

data
array
Lista paginada de notas de crédito

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito" \
  -H "Authorization: Bearer {token}"

POST /api/notas-credito

Crea una nueva nota de crédito para anular o corregir una venta.

Autenticación

Requiere autenticación con token Bearer.

Parámetros del Body

id_venta
integer
required
ID de la venta a la que se le aplicará la nota de crédito
motivo_id
integer
required
ID del motivo SUNAT. Use el endpoint /api/notas-credito/motivos para obtener la lista.
descripcion_motivo
string
Descripción personalizada del motivo (máximo 255 caracteres). Si no se envía, se usa la descripción del motivo SUNAT.

Proceso Automático

Al crear la nota de crédito, el sistema automáticamente:
  1. Determina la serie según el tipo de documento afectado:
    • FC01: Para facturas (01)
    • BC01: Para boletas (03)
  2. Obtiene el próximo número correlativo desde documentos_empresas
  3. Copia los montos de la venta (subtotal, IGV, total, moneda)
  4. Genera el archivo XML firmado de la nota de crédito
  5. Sincroniza el número en documentos_empresas

Respuesta

success
boolean
Indica si la nota fue creada exitosamente
data
object
Objeto completo de la nota de crédito creada con sus relaciones
xml
object
Información sobre la generación del XML

Ejemplo de Uso

curl -X POST "https://api.ejemplo.com/api/notas-credito" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "id_venta": 123,
    "motivo_id": 1,
    "descripcion_motivo": "Anulación por error en el monto"
  }'

GET /api/notas-credito/

Obtiene el detalle completo de una nota de crédito.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Ruta

id
integer
required
ID de la nota de crédito

Respuesta

success
boolean
Indica si la operación fue exitosa
data
object
Objeto completo de la nota de crédito con venta, cliente, productos y motivo

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito/45" \
  -H "Authorization: Bearer {token}"

POST /api/notas-credito//enviar

Envía la nota de crédito a SUNAT para su validación.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Ruta

id
integer
required
ID de la nota de crédito

Requisitos

  • La nota de crédito debe tener el XML generado (nombre_xml no puede ser null)
  • La empresa debe tener certificado digital configurado
  • Las credenciales SOL de SUNAT deben estar configuradas

Proceso de Envío

  1. Lee el XML firmado desde storage/app/sunat/xml/{ruc}/
  2. Envía el documento a SUNAT vía SOAP (sincrónico)
  3. Recibe y procesa el CDR (Constancia de Recepción)
  4. Guarda el CDR en storage/app/sunat/cdr/{ruc}/
  5. Actualiza el estado de la nota según la respuesta de SUNAT

Respuesta

success
boolean
Indica si el envío fue exitoso
codigo_sunat
string
Código de respuesta de SUNAT
mensaje_sunat
string
Mensaje de respuesta de SUNAT
cdr_url
string
Ruta del archivo CDR

Ejemplo de Uso

curl -X POST "https://api.ejemplo.com/api/notas-credito/45/enviar" \
  -H "Authorization: Bearer {token}"

GET /api/notas-credito//cdr

Descarga el archivo CDR (Constancia de Recepción) de SUNAT en formato ZIP.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Ruta

id
integer
required
ID de la nota de crédito

Respuesta

Descarga directa del archivo ZIP con el CDR.

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito/45/cdr" \
  -H "Authorization: Bearer {token}" \
  -o cdr.zip

GET /api/notas-credito/xml/

Descarga el archivo XML de la nota de crédito.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Ruta

nombre
string
required
Nombre del archivo XML (con o sin extensión .xml)

Respuesta

Archivo XML con Content-Type: application/xml.

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito/xml/20612706702-07-FC01-000001" \
  -H "Authorization: Bearer {token}" \
  -o nota-credito.xml

GET /api/notas-credito/buscar-venta

Busca una venta por serie y número para crear una nota de crédito.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Consulta

serie
string
required
Serie del comprobante (ej: F001, B001)
numero
string
required
Número del comprobante

Respuesta

success
boolean
Indica si se encontró la venta
venta
object
Objeto completo de la venta con cliente, tipo de documento y productos

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito/buscar-venta?serie=F001&numero=123" \
  -H "Authorization: Bearer {token}"

GET /api/notas-credito/motivos

Obtiene la lista de motivos válidos para notas de crédito según catálogo SUNAT.

Autenticación

Requiere autenticación con token Bearer.

Respuesta

success
boolean
Indica si la operación fue exitosa
data
array
Lista de motivos de nota de crédito

Motivos Comunes SUNAT

  • 01: Anulación de la operación
  • 02: Anulación por error en el RUC
  • 03: Corrección por error en la descripción
  • 04: Descuento global
  • 05: Descuento por ítem
  • 06: Devolución total
  • 07: Devolución por ítem
  • 08: Bonificación
  • 09: Disminución en el valor
  • 13: Ajustes afectos al IVAP

Ejemplo de Uso

curl -X GET "https://api.ejemplo.com/api/notas-credito/motivos" \
  -H "Authorization: Bearer {token}"

Códigos de Error

  • 404 Not Found: Nota de crédito o venta no encontrada.
  • 422 Unprocessable Entity: Error de validación o XML no generado.
  • 500 Internal Server Error: Error en el servidor o al comunicarse con SUNAT.

Notas Importantes

  • Las notas de crédito se crean automáticamente con los montos de la venta original.
  • La serie se determina automáticamente según el tipo de documento: FC01 para facturas, BC01 para boletas.
  • El envío a SUNAT es sincrónico: la respuesta (CDR) se obtiene inmediatamente.
  • Solo se pueden crear notas de crédito para ventas activas de la empresa del usuario.

Build docs developers (and LLMs) love