Skip to main content

GET /api/notas-debito

Lista todas las notas de débito 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 débito

Ejemplo de Uso

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

POST /api/notas-debito

Crea una nueva nota de débito para incrementar el monto de 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 débito
motivo_id
integer
required
ID del motivo SUNAT. Use el endpoint /api/notas-debito/motivos para obtener la lista.
monto_total
number
required
Monto total de la nota de débito (debe ser mayor a 0.01)
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 débito, 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
  3. Calcula subtotal e IGV a partir del monto total:
    • subtotal = total / (igv_rate + 1)
    • igv = total - subtotal
  4. Genera el archivo XML firmado de la nota de débito
  5. Copia la moneda de la venta original

Respuesta

success
boolean
Indica si la nota fue creada exitosamente
data
object
Objeto completo de la nota de débito 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-debito" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "id_venta": 123,
    "motivo_id": 1,
    "monto_total": 50.00,
    "descripcion_motivo": "Intereses por mora"
  }'

GET /api/notas-debito/

Obtiene el detalle completo de una nota de débito.

Autenticación

Requiere autenticación con token Bearer.

Parámetros de Ruta

id
integer
required
ID de la nota de débito

Respuesta

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

Ejemplo de Uso

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

POST /api/notas-debito//enviar

Envía la nota de débito 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 débito

Requisitos

  • La nota de débito 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-debito/45/enviar" \
  -H "Authorization: Bearer {token}"

GET /api/notas-debito/motivos

Obtiene la lista de motivos válidos para notas de débito 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 débito

Motivos Comunes SUNAT

  • 01: Intereses por mora
  • 02: Aumento en el valor
  • 03: Penalidades/otros conceptos
  • 10: Ajustes de operaciones de exportación
  • 11: Ajustes afectos al IVAP

Ejemplo de Uso

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

Códigos de Error

  • 404 Not Found: Nota de débito o venta no encontrada.
  • 422 Unprocessable Entity: Error de validación, XML no generado, o monto inválido.
  • 500 Internal Server Error: Error en el servidor o al comunicarse con SUNAT.

Diferencias con Notas de Crédito

  • Nota de Crédito: Disminuye el monto de la venta (devoluciones, anulaciones, descuentos)
  • Nota de Débito: Aumenta el monto de la venta (intereses, penalidades, ajustes al alza)

Notas Importantes

  • Las notas de débito requieren especificar el monto adicional a cobrar.
  • El sistema calcula automáticamente subtotal e IGV a partir del monto total.
  • 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 débito para ventas activas de la empresa del usuario.

Build docs developers (and LLMs) love