Registrar
Este método genera y registra una nota de crédito electrónica.
Valores
| Variable | Descripción | Prod | Demo |
|---|---|---|---|
URL_API | URL base de la API | https://api.emite.pe | https://api.demo.emite.pe |
EMITE_ID | Identificador asignado a la empresa | Proporcionado por Emite | Proporcionado por Emite |
EMITE_KEY | API Key asignada a la empresa | Proporcionado por Emite | Proporcionado 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
- Shell
- Node
- Java
- PHP
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\":[{...},{...}]}}"
const axios = require('axios');
const data = {
documento: {
cabecera: {
// ...
},
detalle: [
{
// ...
},
{
// ...
}
]
}
};
axios.post('{{URL_API}}/nota-credito/registrar', data, {
headers: {
emite_id: '{{EMITE_ID}}',
emite_key: '{{EMITE_KEY}}',
'Content-Type': 'application/json'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error.response?.data || error.message);
});
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL url = new URL("{{URL_API}}/nota-credito/registrar");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("emite_id", "{{EMITE_ID}}");
conn.setRequestProperty("emite_key", "{{EMITE_KEY}}");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String json = """
{
"documento": {
"cabecera": {
},
"detalle": [
{
},
{
}
]
}
}
""";
try (OutputStream os = conn.getOutputStream()) {
byte[] input = json.getBytes("utf-8");
os.write(input, 0, input.length);
}
int statusCode = conn.getResponseCode();
System.out.println("HTTP Status: " + statusCode);
}
}
<?php
$data = (object)[
'documento' => (object)[
'cabecera' => (object)[
// ...
],
'detalle' => [
(object)[
// ...
],
(object)[
// ...
]
]
]
];
$ch = curl_init('{{URL_API}}/nota-credito/registrar');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'emite_id: {{EMITE_ID}}',
'emite_key: {{EMITE_KEY}}',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);
Propiedades Body
| Propiedad | Obligatoriedad | Tipo | Descripción |
|---|---|---|---|
| documento. cabecera | Requerido | object | Contiene los datos de la cabecera del documento. |
| documento. cabecera. codigoEstablecimiento | Requerido | string 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 | Requerido | string 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 | Requerido | integer Tamaño: [1...8] | Contiene el correlativo del documento. |
| documento. cabecera. fechaEmision | Requerido | string Tamaño: [10] Formato: YYYY-MM-DD | Contiene la fecha de emisión del documento. |
| documento. cabecera. tipoMoneda | Requerido | string Tamaño: [3] Catálogo SUNAT: 02 | Contiene el código del tipo de moneda del documento. |
| documento. cabecera. tipoCambio | CondicionalRequerido 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 | Opcional | string Tamaño: [1...20] | Contiene el número de la orden o servicio. |
| documento. cabecera. tipoNota | Requerido | string 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 | Requerido | string Tamaño: [1...100] | Descripción del motivo o sustento de la emisión de la nota. |
| documento. cabecera. adquiriente | Requerido | object | Información de la Persona Natural a quien se emite el documento. |
| documento. cabecera. adquiriente. numeroIdentidad | Requerido | string 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 | Requerido | string Tamaño: [1] Catálogo SUNAT: 06 | Tipo de documento de identidad, Debe ser igual que el del documento modificado. |
| documento. cabecera. adquiriente. nombre | Requerido | string Tamaño: [1...100] | Razón social. |
| documento. cabecera. adquiriente. direccion | Requerido | object | Contiene los datos de la dirección del adquiriente. |
| documento. cabecera. adquiriente. direccion. descripcion | Requerido | string 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. | Opcional | string | Email de la persona. A este email se notificará el documento. |
| documento. cabecera. documentosModificados | Requerido | array[object] | Lista de documentos modificados. |
| documento. cabecera. documentosModificados[i]. numero | Requerido | string 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 | Requerido | string Tamaño: [2] Catálogo SUNAT: 01 | Código del tipo de documento modificado. |
| documento. cabecera. igv | Requerido | object | Contiene los datos del IGV. |
| documento. cabecera. igv. monto | Requerido | string 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 | CondicionalRequerido 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 | Requerido | object | Contiene los montos globales del documento. |
| documento. cabecera. importes. importeTotal | Requerido | string 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 | CondicionalRequerido 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 | Requerido | string | Importe total en letras. |
| documento. cabecera. operacionGravada | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido si tipo de nota es 13Solo para notas de facturas a crédito | object | Informació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 | CondicionalRequerido si tipo de nota es 13Solo 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 | CondicionalRequerido si tipo de nota es 13Solo 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 | CondicionalRequerido si tipo de nota es 13Solo 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 | CondicionalRequerido si tipo de nota es 13Solo 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 | CondicionalRequerido si tipo de nota es 13Solo 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 | Opcional | array[object] | Lista de campos adicionales a agregar en la representación impresa. |
| documento. cabecera. adicionales[i]. codigo | CondicionalRequerido si se agregan adicionales | string | Código a consignar en la representación impresa, este código es definido por el usuario. |
| documento. cabecera. adicionales[i]. valor | CondicionalRequerido si se agregan adicionales | string | Valor del dato adicional que se imprimirá en la representación impresa según el código asignado. |
| documento. cabecera. observaciones | Opcional | array[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 | Requerido | array[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 | CondicionalRequerido si tipo de nota es diferente de 13 | integer Tamaño: [1...3] | Número de orden del ítem. |
| documento. detalle[i]. descripcion | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido si tipo de nota es diferente de 13 | object | Contiene los datos del IGV. |
| documento. detalle[i]. igv. monto | CondicionalRequerido si tipo de nota es diferente de 13 | string Tamaño: [1...15] Formato: Decimal Decimales: 2 | Indica el monto del impuesto. Sí igv.codigoTipoAfectacionIgv es 10 factorIGV será igual a 1 + (%IGV / 100).Sí 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 | CondicionalRequerido 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. Sí igv.codigoTipoAfectacionIgv esta entre 11 y 19 factorIGV será igual a 1 + (%IGV / 100).Sí 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido 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 | CondicionalRequerido si tipo de nota es diferente de 13 | string | Importe 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 | CondicionalRequerido 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 | CondicionalRequerido si tipo de nota es diferente de 13 | string Tamaño: [1...15] Formato: Decimal Decimales: 2 | Precio unitario del ítem (incluye IGV). Sí igv.codigoTipoAfectacionIgv es 10 factorIGV será igual a 1 + (%IGV / 100).Sí 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 | CondicionalRequerido si se agregan adicionales al ítem Solo si tipo de nota es diferente de 13 | string | Código a consignar en la representación impresa. Este código es definido por el usuario. |
| documento. detalle[i]. adicionales[a]. valor | CondicionalRequerido si se agregan adicionales al ítem Solo si tipo de nota es diferente de 13 | string | Valor 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:
200 — Cuando el proceso se ejecute correctamente.
- Nota de crédito de factura
- Nota de crédito de boleta
{
"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"
}
}
{
"ticketPeticion": "1537486212351-1024216",
"codigoHash": "JIkdG2WPEgcfALGPziUEA8wnBBY=",
"estado": 1,
"nombreEstado": "NO PROCESADO",
"xml": {
"name": "20600323751-07-B001-1.xml",
"content": "contenido-del-archivo",
"contentType": "text/xml"
},
"pdf": {
"name": "20600323751-07-B001-1.pdf",
"content": "contenido-del-archivo",
"contentType": "application/pdf"
}
}
| Propiedad | Condición | Tipo | Descripción |
|---|---|---|---|
| ticketPeticion | Siempre | string | Código identificador de la petición. |
| codigoHash | Siempre | string | Código HASH del valor resumen de la firma digital al XML del CPE. |
| estado | Siempre | integer | Código interno de estado del documento. |
| nombreEstado | Siempre | string | Descripción de estado interno del documento. |
| Siempre | object | Contiene los datos del archivo PDF. | |
| pdf. name | Siempre | string | Nombre del archivo. |
| pdf. content | Siempre | stringBase64 | Contenido del byte[] representado en Base64. |
| pdf. contentType | Siempre | stringapplication/pdf | Nombre del mime type del archivo. |
| xml | Siempre | object | Contiene los datos del archivo XML. |
| xml. name | Siempre | string | Nombre del archivo. |
| xml. content | Siempre | stringBase64 | Contenido del byte[] representado en Base64. |
| xml. contentType | Siempre | stringtext/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:
400 - ERROR DE ESTRUCTURA JSON O EN LOS PARÁMETROS ENVIADOS.
401 - ERROR DE AUTORIZACIÓN.
402 - ERROR POR FALTA DE PAGO.
403 - ERROR POR VALIDACIONES.
404 - RECURSO NO ENCONTRADO.
500 - ERROR EN EL SERVIDOR.
- Nota de crédito de factura
- Nota de crédito de boleta
{
"ticketPeticion": "1537486212351-1024216",
"estado": "FORBIDDEN",
"mensaje": "La Nota de crédito << F001-1 >> ya fue registrada anteriormente en nuestro sistema"
}
{
"ticketPeticion": "1537486212351-1024216",
"estado": "FORBIDDEN",
"mensaje": "La Nota de crédito << B001-1 >> ya fue registrada anteriormente en nuestro sistema"
}
| Propiedad | Condición | Tipo | Descripción |
|---|---|---|---|
| ticketPeticion | Siempre | string | Código identificador de la petición. |
| estado | Siempre | string | Nombre del estado HTTP retornado:BAD_REQUESTUNAUTHORIZEDPAYMENT_REQUIREDFORBIDDENNOT_FOUNDINTERNAL_SERVER_ERROR. |
| mensaje | Siempre | string | Descripción del resultado o error retornado por la API. |
Catálogo SUNAT N° 01
Código de tipo de documento
| Código | Descripción |
|---|---|
| 01 | Factura |
| 03 | Boleta de venta |
| 07 | Nota de crédito |
| 08 | Nota de débito |
| 09 | Guía de remisión remitente |
| 20 | Comprobante de retención |
| 31 | Guía de remisión transportista |
| 40 | Comprobante de Percepción |
Catálogo SUNAT N° 02
Código de tipo de monedas
| Código | Descripción |
|---|---|
| PEN | Soles |
| USD | Dó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ódigo | Descripción |
|---|---|
| NIU | UNIDADES BIENES |
| ZZ | UNIDADES SERVICIOS |
Archivo XLS con las unidades de medida
Catálogo SUNAT N° 04
Códigos de países
| Código | Descripción |
|---|---|
| PE | PERU |
| US | UNITED STATES |
Archivo HTML con los códigos de paises
Catálogo SUNAT N° 06
Código de tipo de documento de identidad
| Código | Descripción |
|---|---|
| 0 | DOC.TRIB.NO.DOM.SIN.RUC |
| 1 | Documento Nacional de Identidad |
| 4 | Carnet de extranjería |
| 6 | Registro Unico de Contributentes |
| 7 | Pasaporte |
| A | Cédula Diplomática de identidad |
| B | DOC.IDENT.PAIS.RESIDENCIA-NO.D |
| D | Identification Number - IN – Doc Trib PP. JJ |
| F | Permiso Temporal de Permanencia - PTP |
| H | Carné Permiso Temp. Perman. - CPP |
Catálogo SUNAT N° 07
Código de tipo de afectación del IGV
| Código | Descripción |
|---|---|
| 10 | Gravado - Operación Onerosa |
| 11 | Gravado – Retiro por premio |
| 12 | Gravado – Retiro por donación |
| 13 | Gravado – Retiro |
| 14 | Gravado – Retiro por publicidad |
| 15 | Gravado – Bonificaciones |
| 16 | Gravado – Retiro por entrega a trabajadores |
| 17 | Gravado - IVAP |
| 20 | Exonerado - Operación Onerosa |
| 21 | Exonerado - Transferencia gratuita |
| 30 | Inafecto - Operación Onerosa |
| 31 | Inafecto – Retiro por Bonificación |
| 32 | Inafecto – Retiro |
| 33 | Inafecto – Retiro por Muestras Médicas |
| 34 | Inafecto - Retiro por Convenio Colectivo |
| 35 | Inafecto – Retiro por premio |
| 36 | Inafecto - Retiro por publicidad |
| 37 | Inafecto - Transferencia gratuita |
| 40 | Exportación de Bienes o Servicios |
Catálogo SUNAT N° 09
Códigos de tipo de nota de crédito electrónica
| Código | Descripción |
|---|---|
| 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 |
| 09 | Disminución en el valor |
| 13 | Correcció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