API Online
API Online
NUBEFACT ONLINE
FECHA VERSIN DE ESTE DOCUMENTO DETALLE
RECURSOS:
Para poder usar nuestra API para ONLINE necesitas una URL y un TOKEN.
URL: La puedes conseguir ingresando a tu cuenta en www.nubefact.com desde la opcin API.
EJEMPLO: https://www.nubefact.com/api/v1/48239908-7ae7-4353-824d-071765d4
TOKEN: La puedes generar ingresando a tu cuenta en www.nubefact.com desde la opcin API.
EJEMPLO: 1c4239064a3f441880d7ced75eea4383b831c0bf26944169b1a0abe0a1d1c180
Para hacer PRUEBAS de esta API RECOMENDAMOS usar:
INSOMNIA: Un probador de API gratuito https://insomnia.rest/
POSTMAN: Una aplicacin para CHROME https://www.getpostman.com/
JSON: Usamos JSON para recibir y entregarte la informacin por ser un formato de texto ligero para el intercambio de datos.
Antes de pasar el sistema a produccin, solicitaremos que se generen desde su sistema los siguientes documentos va API:
1 Factura Electrnica en Soles
1 Factura Electrnica en Dlares
1 Factura Electrnica para operaciones Exoneradas o Inafectas
1 Factura Electrnica para Exportacin
1 Nota de Crdito Electrnica modificando o anulando una Factura Electrnica
1 Nota de Dbito Electrnica modificando o modificando una Factura Electrnica
1 Factura Electrnica combinada con operaciones Gravadas, Inafectas o Exoneradas
1 Consulta de Estado en la Sunat de la Factura Electrnica
1 Boleta de Venta Electrnica en Soles
1 Boleta de Venta Electrnica en Dlares
1 Boleta de Venta Electrnica para operaciones Exoneradas o Inafectas
1 Boleta de Venta Electrnica para Exportacin
1 Boleta de Venta Electrnica combinada con operaciones Gravadas, Inafectas o Exoneradas
1 Nota de Crdito Electrnica modificando o anulando una Boleta de Venta Electrnica
1 Nota de Dbito Electrnica modificando o modificando una Boleta de Venta Electrnica
1 Consulta de Estado en la Sunat de la Boleta de Venta Electrnica
1 Comunicacin de Baja de Factura Electrnica
1 Comunicacin de Baja de Boleta de Venta Electrnica
1 Consulta de Estado de Comunicacin de Baja
{
"type": "send_invoice",
"invoice": {
"tipo": "1",
"serie": "F001",
"numero": "1",
"entidad_numero_de_documento": "20600695771",
"entidad_tipo_de_documento": "6",
"entidad_denominacion": "NUBEFACT SA",
"entidad_direccion": "CALLE LIBERTAD 116 MIRAFLORES - LIMA - PERU",
"entidad_email": "[email protected]",
"fecha_de_emision": "05-06-2016",
"fecha_de_vencimiento": "",
"moneda": "1",
"tipo_de_cambio": "",
"operacion_gratuita": "false",
"total_gravada": "1000",
"total_inafecta": "",
"total_exonerada": "",
"total_igv": "180",
"total_gratuita": "",
"descuento_global": "",
"total_otros_cargos": "10",
"total": "1190",
"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",
"cancelado": "true",
"codigo_unico": "1-F001-1",
"invoice_lines": [
{
"unit_code": "ZZ",
"cantidad": "2",
"tipo_de_igv": "1",
"valor_unitario": "250",
"precio_unitario": "295",
"subtotal": "500",
"igv": "90",
"total": "590",
"descripcion": "MENU DE DIA"
},
{
"unit_code": "ZZ",
"cantidad": "2",
"tipo_de_igv": "1",
"valor_unitario": "250",
"precio_unitario": "295",
"subtotal": "500",
"igv": "90",
"total": "590",
"descripcion": "MENU DE DIA"
}
]
}
}
EXPLICACIN:
ESTE VALOR SIEMPRE DEBER SER "send_invoice" PARA ENVIAR
"type"
FACTURAS, BOLETAS Y NOTAS DE CRDITO Y DBITO
1 = "FACTURA"
2 = "BOLETA"
"tipo"
3 = "NOTA DE CRDITO"
4 = "NOTA DE DBITO"
1 = SOLES
"moneda"
2 = DLARES
"observaciones" OPCIONAL
1 = FACTURAS ELECTRNICAS
"documento_que_se_modifica_tipo"
2 = BOLETAS DE VENTA ELECTRNICAS
1 = ANULACIN DE LA OPERACIN
2 = ANULACIN POR ERROR EN EL RUC
3 = CORRECCIN POR ERROR EN LA DESCRIPCIN
4 = DESCUENTO GLOBAL
"tipo_de_nota_de_credito" 5 = DESCUENTO POR TEM
6 = DEVOLUCIN TOTAL
7 = DEVOLUCIN POR TEM
8 = BONIFICACIN
9 = DISMINUCIN EN EL VALOR
"invoice_lines": [
{
"unit_code": "ZZ",
AQU VAN LAS LNEAS DEL DOCUMENTO
"cantidad": "2",
"unit_code" = NIU PARA PRODUCTO, ZZ PARA SERVICIO
"tipo_de_igv": "1",
"tipo_de_igv" = TIPO DE IGV, considerar la siguiente tabla:
"valor_unitario": "250",
1 = "Gravado - Operacin Onerosa"
"precio_unitario": "295",
2 = "Gravado Retiro por premio"
"subtotal": "500",
3 = "Gravado Retiro por donacin"
"igv": "90",
4 = "Gravado Retiro"
"total": "590",
5 = "Gravado Retiro por publicidad"
"descripcion": "MENU DE DIA"
6 = "Gravado Bonificaciones"
},
7 = "Gravado Retiro por entrega a trabajadores"
{
8 = "Exonerado - Operacin Onerosa"
"unit_code": "ZZ",
9 = "Inafecto - Operacin Onerosa"
"cantidad": "2",
10 = "Inafecto Retiro por Bonificacin"
"tipo_de_igv": "1",
11 = "Inafecto Retiro"
"valor_unitario": "250",
12 = "Inafecto Retiro por Muestras Mdicas"
"precio_unitario": "295",
13 = "Inafecto - Retiro por Convenio Colectivo"
"subtotal": "500",
14 = "Inafecto Retiro por premio"
"igv": "90",
15 = "Inafecto - Retiro por publicidad"
"total": "590",
16 = "Exportacin"
"descripcion": "MENU DE DIA"
}
]
{
"invoice": {
"serie": "F001",
"numero": 7,
"key": "bddaef88-ea1b-4c0f-9961-a0f71ded59e0-527894c2-16a4-495f-88ea-23ca4e52bc88",
"aceptada_por_sunat": true,
"sunat_description": "La Factura numero F001-7, ha sido aceptada",
"sunat_note": null,
"sunat_responsecode": "0",
"sunat_soap_error": "",
"digest_value": "nu/xRVCY0me66s93KNQNx1QJ1ZU=",
"codigo_de_barras": "20219719443 | 01 | F001 | 000007 | 180.00 | 1,190.00 | 05/05/2016 | 6 | 20547551398 |
UNv/nKSCy08PFSwAR02wZvqXVcs= |
nGEDbsDZsXnrWjf//kpu2BnGeK+DmKZjoSGnCW3na1lki7pktxfDVe8ihxm9\ncrhNi5EPFmdTLcbxcc+W+lCpDj9h8LeIz5MlhdPPEmpZUfLDa
Bhytf/fruZg\nadQi0WvCjHqW3Z7CRgbJh7t40Wvz9FbPfZhs121baF+fwYwYQpY43lzJR+MR\nMmMeoSVB6kL9TFilUF1EoZ4NTBeFX2hEF9
QVkPwqcvcznXIFMmhdG7pvX/p+\nryAYCDbMq4kcmiyqP0xgqL6wHjLiURq1eQa6JssMPm4a1Fag83xSmt62YjYL\ncwvHyG0Asu40jXPOA2
2kYyFLbGsI94/9ExSKZsPK2w== |",
"xml_zip_base64": "DmKZjoSGnCW3na1lki7pktxfDVe8ihxm9...=",
"pdf_zip_base64": "kpu2BnGeK...=",
"cdr_zip_base64": "nGEDbsDZsXnrWjf...="
}
}
EXPLICACIN
"serie" SERIE DEL DOCUMENTO
OPCIN 1:
{
"type": "status_invoice",
"invoice": {
"tipo": "1",
"serie": "F001",
"numero": "1"
}
}
OPCIN 2:
{
"type": "status_invoice",
"invoice": {
"key": "cfb7bcda-6cb7-4c0e-81db-173821b7a05e-fe015ff7-c12c-4764-8e30-fc50cb79aaf2"
}
}
EXPLICACIN
OPCIN 1:
"type" ESTE VALOR SIEMPRE DEBER SER = "status_invoice"
1 = "FACTURA"
2 = "BOLETA"
"tipo"
3 = "NOTA DE CRDITO"
4 = "NOTA DE DBITO"
OPCIN 2:
"type" ESTE VALOR SIEMPRE DEBER SER = "status_invoice"
{
"type": "send_voided_document",
"voided_document": {
"codigo_unico": "ANULADO-ID000001",
"documento_tipo": "1",
"documento_serie": "F001",
"documento_numero": "1",
"motivo": "ERROR DEL SISTEMA"
}
}
EXPLICACIN
"type" ESTE VALOR SIEMPRE DEBER SER = "send_voided_document"
EXPLICACIN
"numero" NMERO DEL DOCUMENTO (ASIGNADO POR NUBEFACT)
OPCIN 2
{
"type": "status_voided_document",
"voided_document": {
"key": "cfb7bcda-6cb7-4c0e-81db-173821b7a05e-fe015ff7-c12c-4764-8e30-fc50cb79aaf2"
}
}
EXPLICACIN
OPCIN 1 (RECOMENDADO)
"type" ESTE VALOR SIEMPRE DEBER SER = "status_voided_document"
1 = "FACTURA"
"documento_tipo"
2 = "BOLETA"
OPCIN 2
"type" ESTE VALOR SIEMPRE DEBER SER = "status_voided_document"
REPRESENTACIN IMPRESA
Caractersticas que deben estar presentes si se genera la representacin impresa:
FORMATO FACTURA:
FORMATO TICKET:
PHP
CURL
C#
Debes usar la siguiente librera: http://www.newtonsoft.com/json
Tambin puedes usar esta utilera para construir clases para el Json: http://jsonutils.com/
/// CREAMOS LAS CLASES PARA CONSTRUIR EL JSON Y LEER LA RESPUESTA EN JSON
public class Root
{
public string type { get; set; }
public Invoice invoice { get; set; }
}
public class Invoice
{
public string tipo { get; set; }
public string serie { get; set; }
public string numero { get; set; }
public string entidad_numero_de_documento { get; set; }
public string entidad_tipo_de_documento { get; set; }
public string entidad_denominacion { get; set; }
public string entidad_direccion { get; set; }
public string entidad_email { get; set; }
public string fecha_de_emision { get; set; }
public string fecha_de_vencimiento { get; set; }
public string moneda { get; set; }
public string tipo_de_cambio { get; set; }
public string operacion_gratuita { get; set; }
public string total_gravada { get; set; }
public string total_inafecta { get; set; }
public string total_exonerada { get; set; }
public string total_igv { get; set; }
public string total_gratuita { get; set; }
public string descuento_global { get; set; }
public string total_otros_cargos { get; set; }
public string total { get; set; }
public string detraccion { get; set; }
public string observaciones { get; set; }
public string documento_que_se_modifica_tipo { get; set; }
public string documento_que_se_modifica_serie { get; set; }
public string documento_que_se_modifica_numero { get; set; }
public string tipo_de_nota_de_credito { get; set; }
public string tipo_de_nota_de_debito { get; set; }
public string enviar_automaticamente_a_la_sunat { get; set; }
public string enviar_automaticamente_al_cliente { get; set; }
public string cancelado { get; set; }
public string codigo_unico { get; set; }
public List<InvoiceLine> invoice_lines { get; set; }
}
public class InvoiceLine
{
public string unit_code { get; set; }
public string cantidad { get; set; }
public string tipo_de_igv { get; set; }
public string valor_unitario { get; set; }
public string precio_unitario { get; set; }
public string subtotal { get; set; }
public string igv { get; set; }
public string total { get; set; }
public string descripcion { get; set; }
}
VB.NET
' CREAMOS LAS CLASES PARA CONSTRUIR EL JSON Y LEER LA RESPUESTA EN JSON
Public Class Root
Public Property type As String
Public Property invoice As Invoice
End Class
JAVA
package apirest;
public class ApiRest {
public static void main(String[] args) {
ConsumingPost cp = new ConsumingPost();
cp.apiConsume();
}
}
package apirest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
objetoSecundario.put("total","1190");
objetoSecundario.put("detraccion","false");
objetoSecundario.put("observaciones","");
objetoSecundario.put("documento_que_se_modifica_tipo","");
objetoSecundario.put("documento_que_se_modifica_serie","");
objetoSecundario.put("documento_que_se_modifica_numero","");
objetoSecundario.put("tipo_de_nota_de_credito","");
objetoSecundario.put("tipo_de_nota_de_debito","");
objetoSecundario.put("enviar_automaticamente_a_la_sunat","true");
objetoSecundario.put("enviar_automaticamente_al_cliente","true");
objetoSecundario.put("cancelado","true");
objetoSecundario.put("codigo_unico","FACTURA-ID00000010");
objetoPrincipal.put("invoice",objetoSecundario);
detalle_linea_2.put("unit_code", "ZZ");
detalle_linea_2.put("cantidad", "1");
detalle_linea_2.put("tipo_de_igv", "1");
detalle_linea_2.put("valor_unitario", "500");
detalle_linea_2.put("precio_unitario", "590");
detalle_linea_2.put("subtotal", "500");
detalle_linea_2.put("igv", "90");
detalle_linea_2.put("total", "590");
detalle_linea_2.put("descripcion", "INKA KOLA DE 1.5 LITROSSSDSADSD");
lista.add(detalle_linea_1);
lista.add(detalle_linea_2);
objetoSecundario.put("invoice_lines", lista);
if(json_rspta.get("errors") != null ){
System.out.println("Error => " + json_rspta.get("errors"));
}else{
System.out.println(json_rspta_ok.get("serie"));
System.out.println(json_rspta_ok.get("numero"));
System.out.println(json_rspta_ok.get("key"));
System.out.println(json_rspta_ok.get("aceptada_por_sunat"));
System.out.println(json_rspta_ok.get("sunat_description"));
System.out.println(json_rspta_ok.get("sunat_note"));
System.out.println(json_rspta_ok.get("sunat_responsecode"));
System.out.println(json_rspta_ok.get("sunat_soap_error"));
System.out.println(json_rspta_ok.get("digest_value"));
System.out.println(json_rspta_ok.get("codigo_de_barras"));
System.out.println(json_rspta_ok.get("xml_zip_base64"));
System.out.println(json_rspta_ok.get("pdf_zip_base64"));
System.out.println(json_rspta_ok.get("cdr_zip_base64"));
}
}
} catch (UnsupportedEncodingException ex1) {
System.err.println("Error UnsupportedEncodingException: "+ex1.getMessage());
} catch (IOException ex2) {
System.err.println("Error IOException: "+ex2.getMessage());
} catch (ParseException ex3) {
System.err.println("Error ParseException: "+ex3.getMessage());
} catch (Exception ex4){
System.err.println("Exepction: "+ex4.getMessage());
}
}
}
VISUAL BASIC 6
tipo = """1"""
serie = """F001"""
numero = """1"""
invoice_json = invoice_json & "{"
invoice_json = invoice_json & """type"": ""send_invoice"","
invoice_json = invoice_json & """invoice"": {"
invoice_json = invoice_json & """tipo"":" & tipo & ","
invoice_json = invoice_json & """serie"":" & serie & ","
invoice_json = invoice_json & """numero"":" & numero & ","
invoice_json = invoice_json & """entidad_numero_de_documento"": ""20600695771"","
invoice_json = invoice_json & """entidad_tipo_de_documento"": ""6"","
invoice_json = invoice_json & """entidad_denominacion"": ""NUBEFACT SA"","
invoice_json = invoice_json & """entidad_direccion"": ""CALLE LIBERTAD 116 MIRAFLORES - LIMA - PERU"","
invoice_json = invoice_json & """entidad_email"": ""[email protected]"","
invoice_json = invoice_json & """fecha_de_emision"": ""09-10-2016"","
invoice_json = invoice_json & """fecha_de_vencimiento"": """","
invoice_json = invoice_json & """moneda"": ""1"","
invoice_json = invoice_json & """tipo_de_cambio"": """","
invoice_json = invoice_json & """operacion_gratuita"": ""false"","
invoice_json = invoice_json & """total_gravada"": ""1000"","
invoice_json = invoice_json & """total_inafecta"": """","
invoice_json = invoice_json & """total_exonerada"": """","
invoice_json = invoice_json & """total_igv"": ""180"","
invoice_json = invoice_json & """total_gratuita"": """","
invoice_json = invoice_json & """descuento_global"": """","
invoice_json = invoice_json & """total_otros_cargos"": ""10"","
invoice_json = invoice_json & """total"": ""1190"","
invoice_json = invoice_json & """detraccion"": ""false"","
invoice_json = invoice_json & """observaciones"": """","
invoice_json = invoice_json & """documento_que_se_modifica_tipo"": """","
invoice_json = invoice_json & """documento_que_se_modifica_serie"": """","
invoice_json = invoice_json & """documento_que_se_modifica_numero"": """","
invoice_json = invoice_json & """tipo_de_nota_de_credito"": """","
invoice_json = invoice_json & """tipo_de_nota_de_debito"": """","
invoice_json = invoice_json & """enviar_automaticamente_a_la_sunat"": ""true"","
invoice_json = invoice_json & """enviar_automaticamente_al_cliente"": ""false"","
invoice_json = invoice_json & """cancelado"": ""true"","
invoice_json = invoice_json & """codigo_unico"": ""1-F001-1"","
invoice_json = invoice_json & """invoice_lines"": ["
invoice_json = invoice_json & "{"
invoice_json = invoice_json & """unit_code"": ""ZZ"","
invoice_json = invoice_json & """cantidad"": ""1"","
invoice_json = invoice_json & """tipo_de_igv"": ""1"","
invoice_json = invoice_json & """valor_unitario"": ""500"","
invoice_json = invoice_json & """precio_unitario"": ""590"","
invoice_json = invoice_json & """subtotal"": ""500"","
invoice_json = invoice_json & """igv"": ""90"","
invoice_json = invoice_json & """total"": ""590"","
invoice_json = invoice_json & """descripcion"": ""INKA KOLA DE 1.5 LITROS"""
invoice_json = invoice_json & "}," ' CUIDADO: Retirar la coma si es la ltima linea o item del documento
invoice_json = invoice_json & "{"
invoice_json = invoice_json & """unit_code"": ""ZZ"","
invoice_json = invoice_json & """cantidad"": ""1"","
invoice_json = invoice_json & """tipo_de_igv"": ""1"","
invoice_json = invoice_json & """valor_unitario"": ""500"","
invoice_json = invoice_json & """precio_unitario"": ""590"","
invoice_json = invoice_json & """subtotal"": ""500"","
invoice_json = invoice_json & """igv"": ""90"","
invoice_json = invoice_json & """total"": ""590"","
invoice_json = invoice_json & """descripcion"": ""INKA KOLA DE 1.5 LITROS"""
invoice_json = invoice_json & "}" ' CUIDADO: Retirar la coma si es la ltima linea o item del documento
invoice_json = invoice_json & "]"
invoice_json = invoice_json & "}"
invoice_json = invoice_json & "}"
' Aqu invocamos el servicio de NUBEFACT va http POST y enviamos el ARCHIVO JSON
Dim myMSXML
Set myMSXML = CreateObject("Microsoft.XmlHttp")
' Para algunas versiones de XMLHTTP, use:
' Set myMSXML = CreateObject("MSXML2.ServerXMLHTTP")
' Set myMSXML = CreateObject("MSXML2.XMLHTTP")
myMSXML.open "POST", "https://www.nubefact.com/api/v1/25264c6c-d023-44e5-93f6-f842021625f9", False
myMSXML.setRequestHeader "Content-Type", "application/json"
myMSXML.setRequestHeader "Authorization", "Token
token=1c4239064a3f441880d7ced75eea4383b831c0bf26944169b1a0abe0a1d1c180"
myMSXML.send JsonConverter.ConvertToJson(JsonEnvio)
End Sub
* CONSTRUIMOS EL JSON
TEXT TO json_para_envio NOSHOW
{
"type": "send_invoice",
"invoice": {
"tipo": "1",
"serie": "F001",
"numero": "1",
"entidad_numero_de_documento": "20600695771",
"entidad_tipo_de_documento": "6",
"entidad_denominacion": "NUBEFACT SA",
"entidad_direccion": "CALLE LIBERTAD 116 MIRAFLORES - LIMA - PERU",
"entidad_email": "[email protected]",
"fecha_de_emision": "12-10-2016",
"fecha_de_vencimiento": "",
"moneda": "1",
"tipo_de_cambio": "",
"operacion_gratuita": "false",
"total_gravada": "1000",
"total_inafecta": "",
"total_exonerada": "",
"total_igv": "180",
"total_gratuita": "",
"descuento_global": "",
"total_otros_cargos": "10",
"total": "1190",
"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",
"cancelado": "true",
"codigo_unico": "1-F001-1",
"invoice_lines": [
{
"unit_code": "ZZ",
"cantidad": "1",
"tipo_de_igv": "1",
"valor_unitario": "500",
"precio_unitario": "590",
"subtotal": "500",
"igv": "90",
"total": "590",
"descripcion": "INKA KOLA DE 1.5 LITROS"
},
{
"unit_code": "ZZ",
"cantidad": "1",
"tipo_de_igv": "1",
"valor_unitario": "500",
"precio_unitario": "590",
"subtotal": "500",
"igv": "90",
"total": "590",
"descripcion": "INKA KOLA DE 1.5 LITROS"
}
]
}
}
ENDTEXT
* INVOCAMOS EL SERVICIO DE NUBEFACT
web = "https://www.nubefact.com/api/v1/25264c6c-d023-44e5-93f6-f842021625f9"
post_connect = CreateObject("MSXML2.ServerXMLHTTP")
* Para algunas versiones de XMLHTTP, use:
* post_connect = CreateObject("Microsoft.XMLHTTP")
* post_connect = CreateObject("MSXML2.XMLHTTP")
post_connect.Open("POST", web, .F.)
post_connect.setRequestHeader("Content-Type", "application/json")
post_connect.setRequestHeader("Authorization", "Token
token=1c4239064a3f441880d7ced75eea4383b831c0bf26944169b1a0abe0a1d1c180")
post_connect.Send(json_para_envio)
json_respuesta = post_connect.responsetext
* LEEMOS LA RESPUESTA
leer_respuesta = json_decode(json_respuesta)
IF EMPTY(leer_respuesta.get('errors')) THEN
MESSAGEBOX(leer_respuesta._invoice.get('serie'))
MESSAGEBOX(leer_respuesta._invoice.get('numero'))
MESSAGEBOX(leer_respuesta._invoice.get('key'))
MESSAGEBOX(leer_respuesta._invoice.get('aceptada_por_sunat'))
MESSAGEBOX(leer_respuesta._invoice.get('digest_value'))
MESSAGEBOX(leer_respuesta._invoice.get('codigo_de_barras'))
ELSE
MESSAGEBOX(leer_respuesta.get('errors'))
ENDIF