Saltar al contenido principal

Registrar

Este método genera y registra una nota de crédito electrónica.

Valores

VariableDescripciónProdDemo
URL_APIURL base de la APIhttps://api.emite.pehttps://api.demo.emite.pe
EMITE_IDIdentificador asignado a la empresaProporcionado por EmiteProporcionado por Emite
EMITE_KEYAPI Key asignada a la empresaProporcionado por EmiteProporcionado por Emite

Request

POST {{URL_API}}/nota-credito/registrar

Headers

emite_id: {{EMITE_ID}}
emite_key: {{EMITE_KEY}}
Content-Type: application/json

Estructura Body

El objeto documento representa el CPE a generar.

  • cabecera: contiene la información general del comprobante, totales, serie, correlativo, adquiriente, etc.
  • detalle: contiene la lista de ítems o líneas de venta del comprobante.
{
"documento": {
"cabecera": {...},
"detalle": [
{...},
{...}
]
}
}

La estructura completa del body se detalla en la tabla Propiedades Body.

Implementación

curl "{{URL_API}}/nota-credito/registrar" -X POST \
-H "emite_id: {{EMITE_ID}}" \
-H "emite_key: {{EMITE_KEY}}" \
-H "Content-Type: application/json" \
-d "{\"documento\":{\"cabecera\":{...},\"detalle\":[{...},{...}]}}"

Propiedades Body

PropiedadObligatoriedadTipoDescripción
documento.
cabecera
RequeridoobjectContiene los datos de la cabecera del documento.
documento.
cabecera.
codigoEstablecimiento
Requeridostring
Tamaño: [4].
Caracteres: [0-9].
Código del establecimiento anexo desde donde se emite el comprobante. Si se emite desde el establecimiento principal o casa matriz el código es 0000
documento.
cabecera.
serie
Requeridostring
Tamaño: [4]
Contiene la serie del documento, para notas de facturas debe comenzar por F y para notas de boletas debe comenzar por B.
documento.
cabecera.
correlativo
Requeridointeger
Tamaño: [1...8]
Contiene el correlativo del documento.
documento.
cabecera.
fechaEmision
Requeridostring
Tamaño: [10]
Formato: YYYY-MM-DD
Contiene la fecha de emisión del documento.
documento.
cabecera.
tipoMoneda
Requeridostring
Tamaño: [3]
Catálogo SUNAT: 02
Contiene el código del tipo de moneda del documento.
documento.
cabecera.
tipoCambio
Condicional
Requerido si tipo de moneda es diferente de PEN
string
Tamaño: [1...9]
Formato: Decimal
Enteros: [1...2]
Decimales: [3...6]
Contiene el tipo de cambio.
documento.
cabecera.
numeroOrden
Opcionalstring
Tamaño: [1...20]
Contiene el número de la orden o servicio.
documento.
cabecera.
tipoNota
Requeridostring
Tamaño: [2]
Catálogo SUNAT: 09
Indica el tipo de nota de crédito a generar.

Las notas de tipo 03 y 13 solo pueden generarse hasta el décimo quinto día habil del mes siguiente a la fecha de emisión del documento a modificar.
documento.
cabecera.
motivo
Requeridostring
Tamaño: [1...100]
Descripción del motivo o sustento de la emisión de la nota.
documento.
cabecera.
adquiriente
RequeridoobjectInformación de la Persona Natural a quien se emite el documento.
documento.
cabecera.
adquiriente.
numeroIdentidad
Requeridostring
Si tipo de identidad es 1: Numérico hasta 8 dígitos
Si tipo de identidad es 6: Numérico de 11 dígitos
Si tipo de identidad es diferente de 1 y de 6: Alfanumérico hasta 15 caracteres
Contiene el número de identidad, Debe ser igual que el del documento modificado.
documento.
cabecera.
adquiriente.
tipoIdentidad
Requeridostring
Tamaño: [1]
Catálogo SUNAT: 06
Tipo de documento de identidad, Debe ser igual que el del documento modificado.
documento.
cabecera.
adquiriente.
nombre
Requeridostring
Tamaño: [1...100]
Razón social.
documento.
cabecera.
adquiriente.
direccion
RequeridoobjectContiene los datos de la dirección del adquiriente.
documento.
cabecera.
adquiriente.
direccion.
descripcion
Requeridostring
Tamaño: [1...100]
No se permite solo espacios en blanco
Dirección exacta. Para notas de facturas debe agregar la dirección del adquiriente. Para notas de boletas en caso de no contar con la dirección puede ser -.
documento.
cabecera.
adquiriente.
direccion.
ubigeo
Opcional
Solo para notas de facturas
string
Tamaño: [6]
Catálogo SUNAT: 13
Código de ubigeo.
documento.
cabecera.
adquiriente.
direccion.
urbanizacion
Opcional
Solo para notas de facturas
string
Tamaño: [1...25]
Nombre de la urbanización.
documento.
cabecera.
adquiriente.
direccion.
departamento
Opcional
Solo para notas de facturas
string
Tamaño: [1...30]
Nombre del departamento.
documento.
cabecera.
adquiriente.
direccion.
provincia
Opcional
Solo para notas de facturas
string
Tamaño: [1...30]
Nombre de la provincia.
documento.
cabecera.
adquiriente.
direccion.
distrito
Opcional
Solo para notas de facturas
string
Tamaño: [1...30]
Nombre del distrito.
documento.
cabecera.
adquiriente.
direccion.
codigoPais
Opcional
Solo para notas de facturas
string
Tamaño: [2]
Catálogo SUNAT: 04
Código del país.
documento.
cabecera.
adquiriente.
email
OpcionalstringEmail de la persona. A este email se notificará el documento.
documento.
cabecera.
documentosModificados
Requeridoarray[object]Lista de documentos modificados.
documento.
cabecera.
documentosModificados[i].
numero
Requeridostring
Tamaño: [6...13]
Formato: [serie]-[correlativo]
Número de documento relacionado, contiene la concatenación de serie + "-" + correlativo, por ejemplo: F001-1 (Nota de factura) o B001-1 (Nota de boleta).
documento.
cabecera.
documentosModificados[i].
tipo
Requeridostring
Tamaño: [2]
Catálogo SUNAT: 01
Código del tipo de documento modificado.
documento.
cabecera.
igv
RequeridoobjectContiene los datos del IGV.
documento.
cabecera.
igv.
monto
Requeridostring
Tamaño: [1...15]
Formato: Decimal
Enteros: [1...12]
Decimales: 2
Importe total del IGV, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

igv.monto = [(Σ(detalle[i].igv.monto), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
igv.
montoGratuito
Condicional
Requerido si existe al menos un ítem de venta con afectación gratuita
string
Tamaño: [1...15]
Formato: Decimal
Enteros: [1...12]
Decimales: 2
Indica el monto del impuesto como crédito fiscal para el cliente, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

igv.montoGratuito = [(Σ(detalle[i].igv.montoGratuito), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
importes
RequeridoobjectContiene los montos globales del documento.
documento.
cabecera.
importes.
importeTotal
Requeridostring
Tamaño: [1...15]
Formato: Decimal
Enteros: [1...12]
Decimales: 2
Importe total del documento, debe ser menor o igual al importe del documento que modifica, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

importes.importeTotal = [(operacionGravada + operacionInafecta + operacionExonerada + operacionExportacion + igv.monto + importes.otrosCargosNAB) redondeado a 2 decimales].
documento.
cabecera.
importes.
otrosCargosNAB
Condicional
Requerido si se aplican otros cargos al total del documento
string
Tamaño: [1...15]
Formato: Decimal
Enteros: [1...12]
Decimales: 2
Importe total de otros cargos que no afectan la base imponible, Si tipo de nota es 03 o 13 el valor debe ser 0.00.
documento.
cabecera.
montoEnLetras
RequeridostringImporte total en letras.
documento.
cabecera.
operacionGravada
Condicional
Requerido si existe al menos un ítem de venta con afectación gravada
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto en decimales de la operación, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

operacionGravada = [(Σ(detalle[i].valorVenta (con afectacion gravada)), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
operacionInafecta
Condicional
Requerido si existe al menos un ítem de venta con afectación inafecta
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto en decimales de la operación, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

operacionInafecta = [(Σ(detalle[i].valorVenta (con afectacion inafecta)), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
operacionExonerada
Condicional
Requerido si existe al menos un ítem de venta con afectación exonerada
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto en decimales de la operación, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

operacionExonerada = [(Σ(detalle[i].valorVenta (con afectacion exonerada)), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
operacionGratuita
Condicional
Requerido si existe al menos un ítem de venta con afectación gratuita
string
Caracteres: [0-9]
Tamaño: [18]
Enteros: 15
Decimales: 2
Monto en decimales de la operación, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

operacionGratuita = [(Σ(detalle[i].valorVenta (con afectacion gratuita)), desde i = 0 hasta i = n) redondeado a 2 decimales].
documento.
cabecera.
operacionExportacion
Condicional
Requerido si el documento modificado es una factura de exportación
Solo para notas de facturas
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto en decimales de la operación, Si tipo de nota es 03 o 13 el valor debe ser 0.00.

operacionExportacion = [((Σ(detalle[i].valorVenta (con afectacion exportacion)), desde i = 0 hasta i = n) - (Σ(anticipos[i].operacionExportacion), desde i = 0 hasta i = n)) redondeado a 2 decimales].
documento.
cabecera.
formaPago
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
objectInformación de la forma de pago del comprobante, solo se aplica a notas de crédito de tipo 13 las cuales solo pueden modificar facturas emitidas a crédito.
documento.
cabecera.
formaPago.
tipo
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
string
Caracteres: [1-2]
Tamaño: [1]
Tipo de forma de pago, su valor debe ser 2, solo se aplica a notas de crédito de tipo 13 las cuales solo pueden modificar facturas emitidas a crédito.
documento.
cabecera.
formaPago.
monto
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto neto pendiente de pago de la factura a crédito a modificar.
documento.
cabecera.
cuotas
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
array[object]Información de las cuotas de crédito a pagar, solo se aplica a notas de crédito de tipo 13 las cuales solo pueden modificar facturas emitidas a crédito.
documento.
cabecera.
cuotas[i].
monto
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
string
Caracteres: [0-9]
Tamaño: [15]
Enteros: [1...12]
Decimales: 2
Monto de la cuota a pagar, solo se aplica a notas de crédito de tipo 13 las cuales solo pueden modificar facturas emitidas a crédito.

La sumatoria de los montos de las cuotas debe ser igual a formaPago.monto
documento.
cabecera.
cuotas[i].
fechaVencimiento
Condicional
Requerido si tipo de nota es 13
Solo para notas de facturas a crédito
string
Tamaño: [10]
Formato: YYYY-MM-DD
Contiene la fecha de vencimiento de la cuota a pagar, solo se aplica a notas de crédito de tipo 13 las cuales solo pueden modificar facturas emitidas a crédito.

Deben ser posteriores a la fecha de emisión de la factura.
documento.
cabecera.
adicionales
Opcionalarray[object]Lista de campos adicionales a agregar en la representación impresa.
documento.
cabecera.
adicionales[i].
codigo
Condicional
Requerido si se agregan adicionales
stringCódigo a consignar en la representación impresa, este código es definido por el usuario.
documento.
cabecera.
adicionales[i].
valor
Condicional
Requerido si se agregan adicionales
stringValor del dato adicional que se imprimirá en la representación impresa según el código asignado.
documento.
cabecera.
observaciones
Opcionalarray[string]
Tamaño: [1...250] por cada posición del arreglo
Descripciones adicionales del documento. Cada posición del arreglo será una nueva línea.
documento.
detalle
Requeridoarray[object]Listado de ítems de venta del documento, si tipo de nota es igual a 13 se debe enviar un array vacío [].
documento.
detalle[i].
orden
Condicional
Requerido si tipo de nota es diferente de 13
integer
Tamaño: [1...3]
Número de orden del ítem.
documento.
detalle[i].
descripcion
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...250]
Descripción del producto o servicio.

Si tipo de nota es 03 se coloca como: DICE: [DESCRIPCION_ANTERIOR] DEBE DECIR: [DESCRIPCION_NUEVA].
documento.
detalle[i].
multiDescripcion
Opcional
Solo si tipo de nota es diferente de 13
array[string]
Tamaño: [1...250] por cada posición del arreglo
Descripción adicional del producto o servicio. Cada posición del arreglo será una nueva línea.
documento.
detalle[i].
codigoProducto
Opcional
Solo si tipo de nota es diferente de 13
string
Tamaño: [1...30]
Caracteres: [a-zA-z0-9]
Código del producto. Este código es definido por el usuario.
documento.
detalle[i].
unidadMedida
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...3]
Catálogo SUNAT: 03
Código de unidad de medida.
documento.
detalle[i].
cantidad
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...23]
Formato: Decimal
Enteros: [1...12]
Decimales: 10
Cantidad de unidades de medida del producto o servicio.

Si tipo de nota es 03 el valor debe ser 1.
documento.
detalle[i].
igv
Condicional
Requerido si tipo de nota es diferente de 13
objectContiene los datos del IGV.
documento.
detalle[i].
igv.
monto
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...15]
Formato: Decimal
Decimales: 2
Indica el monto del impuesto.

igv.codigoTipoAfectacionIgv es 10 factorIGV será igual a 1 + (%IGV / 100).

igv.codigoTipoAfectacionIgv es diferente de 10 factorIGV será igual a 1.

igv.monto = [((valorVenta × factorIGV) - valorVenta) redondeado a 2 decimales].

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
igv.
montoGratuito
Condicional
Requerido si la afectación de IGV del ítem es gratuita
Solo si tipo de nota es diferente de 13
string
Tamaño: [1...15]
Formato: Decimal
Enteros: [1...12]
Decimales: 2
Indica el monto del impuesto como crédito fiscal para el cliente.

igv.codigoTipoAfectacionIgv esta entre 11 y 19 factorIGV será igual a 1 + (%IGV / 100).

igv.codigoTipoAfectacionIgv no esta entre 11 y 19 factorIGV será igual a 1.

igv.montoGratuito = [((valorVenta × factorIGV) - valorVenta) redondeado a 2 decimales].

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
igv.
codigoTipoAfectacionIgv
Condicional
Requerido si tipo de nota es diferente de 13
string
Catálogo SUNAT: 07
Código de tipo de afectación del IGV.
documento.
detalle[i].
igv.
factorTributo
Condicional
Requerido si la taza de IGV a usar es diferente de 18%
Solo si tipo de nota es diferente de 13
string
Tamaño: [4...5]
Formato: Decimal
Enteros: [1...2]
Decimales: 2
Taza de IGV a utilizar en el documento ejemplo: 18.00, debe ser la misma para todo el documento, si no se envia se tomara 18.00 por defecto.
documento.
detalle[i].
valorUnitario
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...23]
Formato: Decimal
Decimales: 10
Valor unitario por item (no incluye IGV).

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
importeTotal
Condicional
Requerido si tipo de nota es diferente de 13
stringImporte total de ítem (incluye IGV).

importeTotal = [(valorVenta + igv.monto) redondeado a 2 decimales].

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
valorVenta
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...23]
Formato: Decimal
Decimales: 10
Valor venta por item (no incluye IGV).

valorVenta = [(valorUnitario * cantidad) redondeado a 10 decimales].

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
precioVentaUnitario
Condicional
Requerido si tipo de nota es diferente de 13
string
Tamaño: [1...15]
Formato: Decimal
Decimales: 2
Precio unitario del ítem (incluye IGV).

igv.codigoTipoAfectacionIgv es 10 factorIGV será igual a 1 + (%IGV / 100).

igv.codigoTipoAfectacionIgv es diferente de 10 factorIGV será igual a 1.

precioVentaUnitario = [(valorUnitario × factorIGV) redondeado a 2 decimales].

Si tipo de nota es 03 el valor debe ser 0.00.
documento.
detalle[i].
adicionales
Opcional
Solo si tipo de nota es diferente de 13
array[object]Lista de campos adicionales a agregar en la representación impresa.
documento.
detalle[i].
adicionales[a].
codigo
Condicional
Requerido si se agregan adicionales al ítem
Solo si tipo de nota es diferente de 13
stringCódigo a consignar en la representación impresa. Este código es definido por el usuario.
documento.
detalle[i].
adicionales[a].
valor
Condicional
Requerido si se agregan adicionales al ítem
Solo si tipo de nota es diferente de 13
stringValor del dato adicional que se imprimirá en la representación impresa según el código asignado.

Response

Si el código de estado es 200 la petición anterior retorna un JSON estructurado de la siguiente manera:

Success

200 — Cuando el proceso se ejecute correctamente.

{
"ticketPeticion": "1537486212351-1024216",
"codigoHash": "JIkdG2WPEgcfALGPziUEA8wnBBY=",
"estado": 1,
"nombreEstado": "NO PROCESADO",
"xml": {
"name": "20600323751-07-F001-1.xml",
"content": "contenido-del-archivo",
"contentType": "text/xml"
},
"pdf": {
"name": "20600323751-07-F001-1.pdf",
"content": "contenido-del-archivo",
"contentType": "application/pdf"
}
}
PropiedadCondiciónTipoDescripción
ticketPeticionSiemprestringCódigo identificador de la petición.
codigoHashSiemprestringCódigo HASH del valor resumen de la firma digital al XML del CPE.
estadoSiempreintegerCódigo interno de estado del documento.
nombreEstadoSiemprestringDescripción de estado interno del documento.
pdfSiempreobjectContiene los datos del archivo PDF.
pdf.
name
SiemprestringNombre del archivo.
pdf.
content
Siemprestring
Base64
Contenido del byte[] representado en Base64.
pdf.
contentType
Siemprestring
application/pdf
Nombre del mime type del archivo.
xmlSiempreobjectContiene los datos del archivo XML.
xml.
name
SiemprestringNombre del archivo.
xml.
content
Siemprestring
Base64
Contenido del byte[] representado en Base64.
xml.
contentType
Siemprestring
text/xml
Nombre del mime type del archivo.

Si el código de estado es 400, 401, 402, 403, 404 o 500 la petición anterior retorna un JSON estructurado de la siguiente manera:

Bad Request

400 - ERROR DE ESTRUCTURA JSON O EN LOS PARÁMETROS ENVIADOS.

Unauthorized

401 - ERROR DE AUTORIZACIÓN.

Payment Required

402 - ERROR POR FALTA DE PAGO.

Forbidden

403 - ERROR POR VALIDACIONES.

Not Found

404 - RECURSO NO ENCONTRADO.

Internal Server Error

500 - ERROR EN EL SERVIDOR.

{
"ticketPeticion": "1537486212351-1024216",
"estado": "FORBIDDEN",
"mensaje": "La Nota de crédito << F001-1 >> ya fue registrada anteriormente en nuestro sistema"
}
PropiedadCondiciónTipoDescripción
ticketPeticionSiemprestringCódigo identificador de la petición.
estadoSiemprestringNombre del estado HTTP retornado:
BAD_REQUEST
UNAUTHORIZED
PAYMENT_REQUIRED
FORBIDDEN
NOT_FOUND
INTERNAL_SERVER_ERROR.
mensajeSiemprestringDescripción del resultado o error retornado por la API.


Catálogo SUNAT N° 01

Código de tipo de documento

CódigoDescripción
01Factura
03Boleta de venta
07Nota de crédito
08Nota de débito
09Guía de remisión remitente
20Comprobante de retención
31Guía de remisión transportista
40Comprobante de Percepción

Catálogo SUNAT N° 02

Código de tipo de monedas

CódigoDescripción
PENSoles
USDDólar americano

Archivo XLS con todos los tipos de moneda

Archivo XML con todos los tipos de moneda

Catálogo SUNAT N° 03

Código de tipo de unidad de medida comercial

CódigoDescripción
NIUUNIDADES BIENES
ZZUNIDADES SERVICIOS

Archivo XLS con las unidades de medida

Catálogo SUNAT N° 04

Códigos de países

CódigoDescripción
PEPERU
USUNITED STATES

Archivo HTML con los códigos de paises

Catálogo SUNAT N° 06

Código de tipo de documento de identidad

CódigoDescripción
0DOC.TRIB.NO.DOM.SIN.RUC
1Documento Nacional de Identidad
4Carnet de extranjería
6Registro Unico de Contributentes
7Pasaporte
ACédula Diplomática de identidad
BDOC.IDENT.PAIS.RESIDENCIA-NO.D
DIdentification Number - IN – Doc Trib PP. JJ
FPermiso Temporal de Permanencia - PTP
HCarné Permiso Temp. Perman. - CPP

Catálogo SUNAT N° 07

Código de tipo de afectación del IGV

CódigoDescripción
10Gravado - Operación Onerosa
11Gravado – Retiro por premio
12Gravado – Retiro por donación
13Gravado – Retiro
14Gravado – Retiro por publicidad
15Gravado – Bonificaciones
16Gravado – Retiro por entrega a trabajadores
17Gravado - IVAP
20Exonerado - Operación Onerosa
21Exonerado - Transferencia gratuita
30Inafecto - Operación Onerosa
31Inafecto – Retiro por Bonificación
32Inafecto – Retiro
33Inafecto – Retiro por Muestras Médicas
34Inafecto - Retiro por Convenio Colectivo
35Inafecto – Retiro por premio
36Inafecto - Retiro por publicidad
37Inafecto - Transferencia gratuita
40Exportación de Bienes o Servicios

Catálogo SUNAT N° 09

Códigos de tipo de nota de crédito electrónica

CódigoDescripción
01Anulación de la operación
02Anulación por error en el RUC
03Corrección por error en la descripción
04Descuento global
05Descuento por ítem
06Devolución total
07Devolución por ítem
09Disminución en el valor
13Corrección o modificación del monto neto pendiente de pago y/o la(s) fechas(s) de vencimiento del pago único o de las cuotas y/o los montos correspondientes a cada cuota, de ser el caso

Catálogo SUNAT N° 13

Código de ubicación geográfica (UBIGEO)

Códigos de unicación geografica