Nubefact Doc Api Json V1
Nubefact Doc Api Json V1
MANUAL DE INTEGRACIÓN
ARCHIVO .JSON
FUNCIONA PARA VERSIÓN ONLINE, OFFLINE Y REVENDEDOR(RESELLER) Actualizado al 17/03/2021
MANUAL para archivo TXT en el link: https://goo.gl/Lz7hAq
17/09/2019 1.7 Agregado Tipo de Detraccion: 001, 003, 019, 020, 022, 025, 027
ÍNDICE
ÍNDICE 1
INTRODUCCIÓN 2
VERSIONES DE NUBEFACT PARA USAR NUESTRA API. 2
FORMATOS O ARCHIVOS SOPORTADOS 2
AUTENTICACIÓN 2
CONSEGUIR UNA CUENTA DEMO EN NUBEFACT 2
CÓMO USAR LA RUTA Y EL TOKEN 2
HERRAMIENTAS PARA LA RUTA Y EL TOKEN: 3
FORMA DE TRABAJO 3
REPRESENTACIÓN IMPRESA 7
PASAR A PRODUCCIÓN 8
MANEJO DE ERRORES 15
INTRODUCCIÓN
NUBEFACT es una empresa autorizada por la SUNAT para emitir documentos electrónicos.
Sin importar el lenguaje de programación que uses puedes consumir nuestra API vía ONLINE y OFFLINE para emitir documentos electrónicos
autorizados en cuestión de minutos.
Proporcionamos soporte para la integración y contamos con ejemplos al final de este documento para los lenguajes de programación más solicitados:
PHP, JAVA, C#, VB.NET, VISUAL BASIC, VISUAL FOXPRO, RUBY, etc., en realidad cualquier lenguaje de programación podría integrarse con
nosotros, ya que usamos archivos de texto ligeros para la integración como son el JSON y TXT.
AUTENTICACIÓN
Nuestro servicio está protegido para evitar intrusos.
Lo primero que debes saber es que para usar nuestra API debes autenticarte o loguearte. Para ello necesitas DOS datos: una RUTA y un TOKEN.
FORMA DE TRABAJO
1. Conseguir una RUTA y un TOKEN para trabajar con NUBEFACT (Regístrate o ingresa a tu cuenta en www.nubefact.com).
2. Generar un archivo en formato .JSON o .TXT con una estructura que se detalla en este documento.
3. Enviar el archivo generado a nuestra WEB SERVICE ONLINE u OFFLINE según corresponda usando la RUTA y el TOKEN.
4. Nosotros a partir de ese archivo generamos el archivo XML y PDF (Según especificaciones de la SUNAT).
5. Te devolveremos inmediatamente como respuesta los datos para que imprimas el documento para tu cliente o si lo deseas te enviaremos el
PDF y XML generado. La impresión del documento seguirá haciéndose desde tu sistema. Enviaremos el documento por email a tu cliente si
así lo indicas en el archivo JSON o TXT. Para ver el documento generado ingresa a www.nubefact.com/login con tus datos de acceso, y
luego a la opción "Ver Facturas, Boletas y Notas".
6. Enviaremos el XML generado a la SUNAT y lo almacenaremos junto con el PDF, XML y CDR en la NUBE para que tu cliente pueda
consultarlo en cualquier momento, si así lo desea.
TIPOS DE DATOS
TIPO DESCRIPCIÓN
Integer Número entero
String Texto de 0 hasta 250 caracteres
Text Texto de 0 hasta 1000 caracteres
Numeric Número con decimales, con separador de punto para los decimales y sin separador de comas (,) de miles. Ejemplo: 2034.56
Date Fecha formato DIA-MES-AÑO / DD-MM-YYYY (Separador con guiones medios). Ejemplo: 21-05-2017
false = FALSO (En minúsculas)
Boolean
true = VERDADERO (En minúsculas)
{ {
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
"operacion": "generar_comprobante", "tipo_de_comprobante": 1,
"tipo_de_comprobante": 1, "serie": "FFF1",
"serie": "FFF1", "numero": 1,
"numero": 1, "enlace": "https://www.nubefact.com/cpe/d268f882-4554-
"sunat_transaction": 1, a403c6712e6",
"cliente_tipo_de_documento": 6, "enlace_del_pdf": "",
"cliente_numero_de_documento": "20600695771", "enlace_del_xml": "",
"cliente_denominacion": "NUBEFACT SA", "enlace_del_cdr": "",
"cliente_direccion": "CALLE LIBERTAD 116 MIRAFLORES - "aceptada_por_sunat": true,
LIMA - PERU", "sunat_description": "La Factura numero FFF1-1, ha sido
"cliente_email": "[email protected]", aceptada",
"cliente_email_1": "", "sunat_note": null,
"cliente_email_2": "", "sunat_responsecode": "0",
"fecha_de_emision": "09-05-2017", "sunat_soap_error": "",
"fecha_de_vencimiento": "", "cadena_para_codigo_qr": "20600695771 | 01 | FFF1 | 000001 |
"moneda": 1, ...",
"tipo_de_cambio": "", "codigo_hash": "xMLFMnbgp1/bHEy572RKRTE9hPY="
"porcentaje_de_igv": 18.00, }
"descuento_global": "",
"total_descuento": "",
"total_anticipo": "",
"total_gravada": 600,
"total_inafecta": "",
"total_exonerada": "",
"total_igv": 108,
"total_gratuita": "",
"total_otros_cargos": "",
"total": 708,
"percepcion_tipo": "",
"percepcion_base_imponible": "",
"total_percepcion": "",
"total_incluido_percepcion": "",
"total_impuestos_bolsas": "",
"detraccion": false,
"observaciones": "",
"documento_que_se_modifica_tipo": "",
"documento_que_se_modifica_serie": "",
"documento_que_se_modifica_numero": "",
"tipo_de_nota_de_credito": "",
"tipo_de_nota_de_debito": "",
"enviar_automaticamente_a_la_sunat": true,
"enviar_automaticamente_al_cliente": false,
"condiciones_de_pago": "",
"medio_de_pago": "",
"placa_vehiculo": "",
"orden_compra_servicio": "",
"formato_de_pdf": "",
"generado_por_contingencia": "",
"bienes_region_selva": "",
"servicios_region_selva": "",
"items": [
{
"unidad_de_medida": "NIU",
"codigo": "001",
"codigo_producto_sunat": "10000000",
"descripcion": "DETALLE DEL PRODUCTO",
"cantidad": 1,
"valor_unitario": 500,
"precio_unitario": 590,
"descuento": "",
"subtotal": 500,
"tipo_de_igv": 1,
"igv": 90,
"total": 590,
"anticipo_regularizacion": false,
"anticipo_documento_serie": "",
"anticipo_documento_numero": ""
}, {
"unidad_de_medida": "ZZ",
"codigo": "001",
"codigo_producto_sunat": "20000000",
"descripcion": "DETALLE DEL SERVICIO",
"cantidad": 5,
"valor_unitario": 20,
"precio_unitario": 23.60,
"descuento": "",
"subtotal": 100,
"tipo_de_igv": 1,
"igv": 18,
"total": 118,
"anticipo_regularizacion": false,
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
"anticipo_documento_serie": "",
"anticipo_documento_numero": ""
}
],
"guias": [
{
"guia_tipo": 1,
"guia_serie_numero": "0001-23"
}
],
"venta_al_credito": [
{
"cuota": 1,
"fecha_de_pago": "11-03-2021",
"importe": 600
},
{
"cuota": 2,
"fecha_de_pago": "11-04-2021",
"importe": 100
},
{
"cuota": 3,
"fecha_de_pago": "11-05-2021",
"importe": 8
}
]
}
{ {
"operacion": "consultar_comprobante", "tipo_de_comprobante": 1,
"tipo_de_comprobante": 1, "serie": "FFF1",
"serie": "FFF1", "numero": 1,
"numero": 1 "enlace": "https://www.nubefact.com/cpe/d268f882-4554-a403c6712e6",
} "enlace_del_pdf": "",
"enlace_del_xml": "",
"enlace_del_cdr": "",
"aceptada_por_sunat": true,
"sunat_description": "La Factura numero FFF1-1, ha sido aceptada",
"sunat_note": null,
"sunat_responsecode": "0",
"sunat_soap_error": "",
"anulado": false,
"cadena_para_codigo_qr": "20600695771 | 01 | FFF1 | 000001 | ...",
"codigo_hash": "xMLFMnbgp1/bHEy572RKRTE9hPY="
}
{ {
"operacion": "generar_anulacion", "numero": 1,
"tipo_de_comprobante": 1, "enlace": "https://www.nubefact.com/anulacion/b7fc0c001-b31a",
"serie": "FFF1", "sunat_ticket_numero": "1494358661332",
"numero": 1, "aceptada_por_sunat": false,
"motivo": "ERROR DEL SISTEMA", "sunat_description": null,
"codigo_unico": "" "sunat_note": null,
} "sunat_responsecode": null,
"sunat_soap_error": "",
"enlace_del_pdf": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.pdf",
"enlace_del_xml": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.xml",
"enlace_del_cdr": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.cdr"
}
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
OPERACIÓN 4: CONSULTAR ANULACIÓN DE FACTURAS, BOLETAS Y NOTAS CON JSON
La explicación de la estructura y las validaciones de esta operación para ENVIAR y de RESPUESTA se detallan al final de este manual:
{ {
"operacion": "consultar_anulacion", "numero": 1,
"tipo_de_comprobante": 1, "enlace": "https://www.nubefact.com/anulacion/b7fc0c001-b31a",
"serie": "FFF1", "sunat_ticket_numero": "1494358661332",
"numero": 1 "aceptada_por_sunat": false,
} "sunat_description": null,
"sunat_note": null,
"sunat_responsecode": null,
"sunat_soap_error": "",
"enlace_del_pdf": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.pdf",
"enlace_del_xml": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.xml",
"enlace_del_cdr": "https://www.nubefact.com/anulacion/b7fc0c001-
b31a.cdr"
}
PHP
Descarga el código en: https://www.nubefact.com/downloads/PHP-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
C#
Descarga el código en: https://www.nubefact.com/downloads/CSHARP-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
JAVA
Descarga el código en: https://www.nubefact.com/downloads/JAVA-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
VB.NET
Descarga el código en: https://www.nubefact.com/downloads/VBNET-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
VISUAL BASIC 6
Descarga el código en: https://www.nubefact.com/downloads/VB6-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
POWER BUILDER
Descarga el código en: https://www.nubefact.com/downloads/POWER-BUILDER-INTEGRACION-CON-NUBEFACT-EJEMPLO-CODIGO-JSON
REPRESENTACIÓN IMPRESA
Nosotros generamos 3 tipos de formatos o tamaños de PDF o REPRESENTACIÓN IMPRESA:
● FORMATO o TAMAÑO A4
● FORMATO o TAMAÑO A5 (MITAD DE A4)
● FORMATO o TAMAÑO TICKET
También podemos personalizar el tamaño y el diseño que deseas.
PASAR A PRODUCCIÓN
NOTAS MUY IMPORTANTES
● Emitir de forma CORRELATIVA, empezando con el número 1, para cada tipo de documento.
● El número correlativo es entre NOTAS DE CRÉDITO para FACTURAS y para BOLETAS, ya que empiezan con F o con B.
Antes de pasar el sistema a producción, solicitaremos que se generen desde su sistema algunos de los siguientes documentos vía API (Según
corresponda):
● 1 Factura Electrónica en Soles
● 1 Factura Electrónica en Dólares
● 1 Factura Electrónica para operaciones Exoneradas o Inafectas
● 1 Factura Electrónica para Exportación
● 1 Nota de Crédito Electrónica modificando o anulando una Factura Electrónica
● 1 Nota de Débito Electrónica modificando o modificando una Factura Electrónica
● 1 Factura Electrónica combinada con operaciones Gravadas, Inafectas o Exoneradas
● 1 Consulta de Estado en la Sunat de la Factura Electrónica
● 1 Boleta de Venta Electrónica en Soles
● 1 Boleta de Venta Electrónica en Dólares
● 1 Boleta de Venta Electrónica para operaciones Exoneradas o Inafectas
● 1 Boleta de Venta Electrónica para Exportación
● 1 Boleta de Venta Electrónica combinada con operaciones Gravadas, Inafectas o Exoneradas
● 1 Nota de Crédito Electrónica modificando o anulando una Boleta de Venta Electrónica
● 1 Nota de Débito Electrónica modificando o modificando una Boleta de Venta Electrónica
● 1 Consulta de Estado en la Sunat de la Boleta de Venta Electrónica
● 1 Comunicación de Baja de Factura Electrónica
● 1 Comunicación de Baja de Boleta de Venta Electrónica
● 1 Consulta de Estado de Comunicación de Baja
número Número correlativo del documento, sin ceros a la izquierda Integer Obligatorio 1 hasta 8
cliente_denominacion Razón o nombre completo del CLIENTE. String Obligatorio 1 hasta 100
Dirección completa (OPCIONAL en caso de ser una BOLETA DE
cliente_direccion String Obligatorio 1 hasta 100
VENTA o NOTA ASOCIADA).
cliente_email Dirección de email debe ser válido. String Opcional 1 hasta 250
cliente_email_1 Dirección de email debe ser válido. String Opcional 1 hasta 250
cliente_email_2 Dirección de email debe ser válido. String Opcional 1 hasta 250
fecha_de_vencimiento Deber ser fecha posterior a la fecha de emisión Date Opcional 10 exactos
1 hasta
total_otros_cargos Ejemplo: 1305.05 Numeric Condicional 12 enteros con
2 decimales
1 hasta
total_isc Numeric Condicional 12 enteros con
2 decimales
1 hasta
total Ejemplo: 1305.05 Numeric Obligatorio 12 enteros con
2 decimales
1 hasta 12
percepcion_base_imponible Ejemplo: 1305.05 Numeric Condicional enteros con 2
decimales
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
1 hasta 12
total_percepcion Ejemplo: 1305.05 Numeric Condicional enteros con 2
decimales
1 hasta 12
total_incluido_percepcion Ejemplo: 1305.05 Numeric Condicional enteros con 2
decimales
1 hasta 12
total_impuestos_bolsas Ejemplo: 0.10 Numeric Condicional enteros con 2
decimales
1 = ANULACIÓN DE LA OPERACIÓN
2 = ANULACIÓN POR ERROR EN EL RUC
3 = CORRECCIÓN POR ERROR EN LA DESCRIPCIÓN
4 = DESCUENTO GLOBAL
5 = DESCUENTO POR ÍTEM
6 = DEVOLUCIÓN TOTAL
tipo_de_nota_de_credito 7 = DEVOLUCIÓN POR ÍTEM Integer Condicional 1 hasta 2
8 = BONIFICACIÓN
9 = DISMINUCIÓN EN EL VALOR
10= OTROS CONCEPTOS
11= AJUSTES AFECTOS AL IVAP
12 = AJUSTES DE OPERACIONES DE EXPORTACIÓN
13 = AJUSTES - MONTOS Y/O FECHAS DE PAGO
1 = INTERESES POR MORA
2 = AUMENTO DE VALOR
tipo_de_nota_de_debito 3 = PENALIDADES Integer Condicional 1 exacto
4= AJUSTES AFECTOS AL IVAP
5 = AJUSTES DE OPERACIONES DE EXPORTACIÓN
false = FALSO (En minúsculas)
enviar_automaticamente_a_la_sunat Boolean Condicional Hasta 5
true = VERDADERO (En minúsculas)
false = FALSO (En minúsculas)
enviar_automaticamente_al_cliente Boolean Condicional Hasta 5
true = VERDADERO (En minúsculas)
Usarlo sólo si deseas que controlemos la generación de
documentos. Código único generado y asignado por tu sistema.
codigo_unico String Opcional 1 hasta 20
Por ejemplo puede estar compuesto por el tipo de documento,
serie y número correlativo.
1 hasta
12 enteros,
cantidad Ejemplo: 1.215 Numeric Obligatorio
hasta con
10 decimales
1 hasta
12 enteros,
valor_unitario Sin IGV. Ejemplo: 90.215691372 Numeric Obligatorio
hasta con
10 decimales
1 hasta
12 enteros,
precio_unitario Con IGV. Ejemplo: 233.215691372 Numeric Obligatorio
hasta con
10 decimales
1 hasta
12 enteros,
descuento Descuento de la línea, el descuento ANTES de los impuestos. Numeric Opcional
hasta con
2 decimales
1 hasta
Resultado de VALOR UNITARIO por la CANTIDAD menos el 12 enteros,
subtotal Numeric Obligatorio
DESCUENTO hasta con
2 decimales
Opcional
(Recuerde que
si va a usar este
17 = IVAP Gravado
nodo o etiqueta
tipo_de_ivap 101 = IVAP Gratuito String -
no tiene que
usar el nodo o
etiqueta
tipo_de_igv)
1 hasta
12 enteros,
igv Total del IGV de la línea Numeric Obligatorio
hasta con
2 decimales
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
1 hasta 12
impuesto_bolsas Para el item del Impuesto de las bolsas plásticas Numeric Condicional enteros con 2
decimales
1 hasta
12 enteros,
total Total de la línea Numeric Obligatorio
hasta con 2
decimales
PARA GUÍAS
TIPO DE
ATRIBUTO DESCRIPCIÓN REQUISITO LONGITUD
DATO
Tipo de la GUÍA DE REMISIÓN RELACIONADA. Ejemplo: 1
guia_tipo 1 = GUÍA DE REMISIÓN REMITENTE Integer Opcional 1 exacto
2 = GUÍA DE REMISIÓN TRANSPORTISTA
Serie y número de la GUÍA DE REMISIÓN RELACIONADA
guia_serie_numero String Opcional 1 hasta 30
separado con un guión medio. Ejemplo: 0322-1
fecha_de_pago Deber ser fecha posterior a la fecha de emisión Date Opcional 10 exactos
1 hasta
12 enteros
importe Ejemplo: 100.00 Numeric Obligatorio
con 2
decimales
TIPO DE
ATRIBUTO DESCRIPCIÓN REQUISITO LONGITUD
DATO
TIPO DE
ATRIBUTO VALOR
DATO
Contenido del archivo cdr de sunat zipeado en base64 que puedes almacenar de ser necesario. (Se
cdr_zip_base64 Text
debe activar esta opción desde “Configuración principal” en NUBEFACT).
Puedes generar el código QR con esta cadena, puedes usarla para construir tu propia representación
cadena_para_codigo_qr String
impresa.
codigo_hash Código HASH para que puedes usarla para construir tu propia representación impresa. String
Puede usar este valor para generar un código de barras en pdf417 que puedes usarla para construir tu
codigo_de_barras propia representación impresa, visite el siguiente link: String
http://generator.onbarcode.com/online-pdf417-barcode-generator.aspx
Enlace que contiene del archivo PDF que puedes almacenar de ser necesario, mandarlo a la
enlace_del_pdf Text
impresora o mostrarlo en un navegador.
Enlace que contiene del archivo XML que puedes almacenar de ser necesario, mandarlo a la
enlace_del_xml Text
impresora o mostrarlo en un navegador.
Enlace que contiene del archivo CDR que puedes almacenar de ser necesario, mandarlo a la
enlace_del_cdr Text
impresora o mostrarlo en un navegador.
TIPO DE
ATRIBUTO DESCRIPCIÓN REQUISITO LONGITUD
DATO
Este valor siempre deberá ser "consultar_anulacion" para consultar
operacion String Obligatorio 19 exactos
FACTURAS, BOLETAS, NOTAS DE CRÉDITO o DÉBITO.
Tipo de COMPROBANTE que desea consultar si fue anulado
1 = FACTURA
tipo_de_comprobante 2 = BOLETA Integer Obligatorio 1 exacto
3 = NOTA DE CRÉDITO
4 = NOTA DE DÉBITO
Empieza con "F" para FACTURAS y NOTAS ASOCIADAS. Empieza
serie String Obligatorio 4 exactos
con "B" para BOLETAS DE VENTA y NOTAS ASOCIADAS.
numero Número correlativo del documento, sin ceros a la izquierda. Integer Obligatorio 1 hasta 8
MANEJO DE ERRORES
MENSAJES DE ERROR
{
"errors": "El archivo enviado no cumple con el formato establecido",
"codigo": 20
}
CÓDIGO DESCRIPCIÓN
10 No se pudo autenticar, token incorrecto o eliminado
La ruta o URL que estás usando no es correcta o no existe. Ingresa a tu cuenta en www.nubefact.com en la opción Api-Integración para
11 verificar este dato
12 Solicitud incorrecta, la cabecera (Header) no contiene un Content-Type correcto
20 El archivo enviado no cumple con el formato establecido
INTEGRACIÓN FÁCIL CON ARCHIVO JSON
Para consultas escribir a [email protected] o al WhatsApp 924 353365
21 No se pudo completar la operación, se acompaña el problema con un mensaje
22 Documento enviado fuera del plazo permitido
23 Este documento ya existe en NubeFacT
24 El documento indicado no existe o no fue enviado a NubeFacT
40 Error interno desconocido
50 Su cuenta ha sido suspendida
51 Su cuenta ha sido suspendida por falta de pago