Giter Club home page Giter Club logo

lycet's Introduction

Lycet - Greenter

Symfony PPM Compatible

Lycet es un API REST basado en greenter y Symfony Framework, UBL 2.1 es soportado.

Objetivo: Ofrecer una interfaz a greenter desde otros lenguajes de programación.

LIVE (Pruebas)

🚀
URL https://greenter-lycet.herokuapp.com/
API TOKEN greenter

Requerimientos

  • Php 7.4 o superior
  • Php Extensions habilitadas (soap, xml, openssl, zlib)
  • WkhtmltoPdf executable (PDF report)
  • Pem Certificate - convert pfx to pem

Pasos

Instalar Lycet

git clone https://github.com/giansalex/lycet
cd lycet
composer install -o

Configuraciones

En el archivo .env ubicado en la raíz del proyecto, podrá cambiar estas configuraciones.

###> greenter/greenter ###
WKHTMLTOPDF_PATH=full/path/wkhtmltopdf.exe
CLIENT_TOKEN=123456
SOL_USER=20000000001MODDATOS
SOL_PASS=moddatos
FE_URL=https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService
RE_URL=https://e-beta.sunat.gob.pe/ol-ti-itemision-otroscpe-gem-beta/billService
GUIA_URL=https://e-beta.sunat.gob.pe/ol-ti-itemision-guia-gem-beta/billService
###< greenter/greenter ###

Tener en cuenta que SOL_USER es la concatenación del RUC + Usuario SOL

Archivos Requeridos

Se necesita almacenar el certificado y logo en la carpeta /data, los archivos deben tener nombres específicos que se indican a continuación.

/data
├── cert.pem
├── logo.png
├── empresas.json (opcional para multiples empresas)

También puede usar lycet-ui-config como interfaz de usuario, siendo mas útil esta opción cuando emplea contenedores.

Ejemplo de contenido del archivo empresas.json, tambien puede cambiar la URL de los servicios para apuntar a un OSE.

{
  "20000000001": {
    "SOL_USER": "20000000001MODDATOS",
    "SOL_PASS": "moddatos",
    "certificate": "20000000001-cert.pem",
    "logo": "20000000001-logo.png"
  },
  "20000000002": {
    "SOL_USER": "20000000002MODDATOS",
    "SOL_PASS": "moddatos",
    "certificate": "20000000002-cert.pem",
    "logo": "20000000002-logo.png",
    "FE_URL": "https://my-ose.com/billService",
    "RE_URL": "https://my-ose.com/billService",
    "GUIA_URL": "https://my-ose.com/billService",
    "AUTH_URL": "https://api-test-seguridad.sunat.gob.pe/v1",
    "API_URL": "https://api-test.sunat.gob.pe/v1",
    "CLIENT_ID": "85e5b0ae-255c-4891-a595-0b98c65c9854",
    "CLIENT_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}

Para pruebas de Guia de remision, utilizar la siguiente configuración issue#605

Ejecutar

Usando Php Built-in Web Server.

php -S 0.0.0.0:8000 -t public

Ir a http://localhost:8000/

Docker

Desplegar con Docker.

git clone https://github.com/giansalex/lycet
cd lycet
docker build -t lycet .

# copiar certificado y logo de prueba (puedes reemplazar por uno personal)
cp tests/Resources/* data
# ejecutar el contenedor
docker run -d -p 8000:8000  -v ./data:/var/www/html/data --name lycet_app lycet

Abrir el navegador, y dirígete a http://localhost:8000/

Docs

Puedes visitar greenter en postman que contiene ejemplos del envío de algunos comprobantes.

Ver swagger documentation, puedes crear un cliente en swagger editor, para tu lenguaje de preferencia.

lycet's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar erajuan avatar giansalex avatar johangm90 avatar zcastle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lycet's Issues

convertir de UBL a JSON

Hola ... una consulta estoy haciendo una aplicación que lea las boletas de la sunat para almacenarlas en DDBB. El problema que no existe ningún programa que transforme de UBL a JSON para poder leer la información del documento XML. ME podrías dar una mano, por favor?

Modelo JSON Guía de Remisión

Estimados srs. buenas tardes, ojalá me puedan ayudar con un modelo de json ubl 2.1 para guia de remisión ... estoy haciendo envíos y no tengo éxito ... tengo el error 500 internal server error.

Este es el json que estoy enviando:

{
	"tipoDoc":"09",
	"serie":"T001",
	"correlativo":"213123",
	"observacion":"NOTA GUIA",
	"fechaEmision": "2019-03-16T15:51:01-05:00",
	"company":
	{
		"ruc":"20123456789",
		"razonSocial":"GREENTER S.A.C",
		"nombreComercial":"GREENTER",
		"address":
		{
			"ubigueo":"060101",
			"codigoPais":"PE",
			"departamento":"cajamarca",
			"provincia":"cajamarca",
			"distrito":"cajamarca",
			"urbanizacion":"null",
			"direccion":"AV LOS GERANIOS 321 - LIMA - LIMA - PERU"
		},
		"email":"null",
		"telephone":"null"
	},
	"destinatario":
	{
		"tipoDoc":"6",
		"numDoc":"20000000002",
		"rznSocial":"EMPRESA 1",
		"address":"null",
		"email":"null",
		"telephone":"null"
         },
		"tercero":
		{
			"tipoDoc":"6",
			"numDoc":"20000000003",
			"rznSocial":"EMPRESA SA",
			"address":"null",
			"email":"null",
			"telephone":"null"
		},
		"envio":
		{
			"codTraslado":"01",
			"desTraslado":"VENTA",
			"indTransbordo":false,
			"pesoTotal":12.5,
			"undPesoTotal":"KGM",
			"numBultos":2,
			"modTraslado":"01",
			"fecTraslado": "2019-03-16 15:51:01.046040",
			"numContenedor":"XD-2232",
			"codPuerto":"123",
			"transportista":
			{
				"tipoDoc":"6",
				"numDoc":"20000000002",
				"rznSocial":"TRANSPORTES S.A.C",
				"placa":"ABI-453",
				"choferTipoDoc":"1",
				"choferDoc":"40003344"
			},
			"llegada":
			{
				"ubigueo":"150101",
				"direccion":"AV LIMA"
			},
			"partida":
			{
				"ubigueo":"150203",
				"direccion":"AV ITALIA"
			}
		},
		"docBaja":
		{
			"tipoDoc":"09",
			"nroDoc":"T001-00001"
		},
		"relDoc":
		{
			"tipoDoc":"02",
			"nroDoc":"213123"
		},
		"details":
                [
		{
			"codigo":"PROD1",
			"descripcion":"PROD 1",
			"unidad":"ZZ",
			"cantidad":2,
			"codProdSunat":"P001"
		}
                ]
}

Error al enviar JSON - Comunicacion de Baja

Buenas, estoy tratando de realizar el documento JSON de la comunicación de bajas, es el siguiente, pero tengo problemas porque recibo el error

500 internal server

{
	"correlativo":"111",
	"fecGeneracion":"2019-02-16T15:51:01+00:00",
	"fecComunicacion":"2019-03-16T15:51:01+00:00",
	"company":
	{
		"ruc":"20123456789",
		"razonSocial":"GREENTER S.A.C",
		"nombreComercial":"GREENTER",
		"address":
		{
			"codigoPais":"PE",
			"direccion":"AV LOS GERANIOS 321 - LIMA - LIMA - PERU"
			
		}
	},
	"details":
	[
		{
			"tipoDoc":"01",
			"serie":"F001",
			"correlativo":"02132132",
			"desMotivoBaja":"ERROR DE SISTEMA"
		},
		{
			"tipoDoc":"07",
			"serie":"FC01",
			"correlativo":"222",
			"desMotivoBaja":"ERROR DE RUC"
			
		}
		]
}

Si alguien puede ayudarme sería de gran ayuda, gracias.

Error al enviar linea con Precio = "0"

Al enviar una linea de factura con precio "0" me aparece el siguiente error...
Debe existir el tag cac:AlternativeConditionPrice/cbc:PriceAmount - Detalle: xxx.xxx.xxx value='ticket: 1551969141757 error: Error en la linea: 2: 2028 (nodo: "/" valor: "")'

Como puedo modificar el Json para poder enviar lo que me pide, o que puedo hacer

Error Al generar PDF: Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request

Buenas tardes. Recientemente he cambiado de un reseller a un vps. y encuentro que tengo un problema con la api al generar el pdf, sin embargo el xml se genera sin inconveniente.
el error que obtengo al momento de consultar al link
http://xxxxxxx/public/api/v1/invoice/pdf?token=xxxxxxxxx

obtengo esto

**Forbidden
You don't have permission to access this resource.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.**

¿Nuevo impuesto de ICBPER?

Buenas tardes, como podría contribuir para colocar el nuevo impuesto ICBPER. La única diferencia que noto es el impuesto del catalogo 5

image

Uno de los cambios que he notado són en el archivo
invoice2.1.xml.twig pero aún no logro mapear modificar el objeto para agregar dicho impuesto

Quizás es más fácil de lo que me estoy complicando saludos.

documentos electrónicos no son visibles en consulta validez

Hola @giansalex, hace unas semanas acabo de probar LYCET, el problema es que cuando envío los documentos a la SUNAT me muestra el mensaje que el comprobante fue aceptado con codigo "0", sin embargo al consultar la validez del CPE, sale que no existe en los registros de la SUNAT. ¿Que puede estar pasando?. Gracias por tu respuesta.

Consulta sobre instalación Lycet

Hola @giansalex, he seguido todos los pasos excepto "Use lycet-ui-config for configure Logo and Certificate." es necesario?, Estoy trabajando con el certificado SFSCert.pem y json que viene con el ejemplo. y me bota error:
post_error1

post_error2

Nombre Comercial no cumple con el formato

Hola, estoy usando este json para enviar la factura, SUNAT responde que ha sido aceptada, pero me envia observaciones

JSON:

{  
   "ublVersion":"2.1",
   "tipoOperacion":"0101",
   "serie":"FFFF",
   "correlativo":3
   },
   "tipoMoneda":"PEN",
   "details":[  
      {  
         "unidad":"NIU",
         "cantidad":1,
         "descripcion":"Numbre item",
         "descuento":0,
         "mtoValorUnitario":21.19,
         "mtoPrecioUnitario":25,
         "igv":3.81,
         "tipAfeIgv":"10",
         "mtoValorVenta":21.19,
         "mtoValorGratuito":0,
         "mtoBaseIgv":21.19,
         "porcentajeIgv":18
      }
   ],
   "tipoDoc":"01",
   "sumOtrosCargos":0,
   "mtoOperInafectas":0,
   "mtoOperExoneradas":0,
   "mtoISC":0,
   "mtoOtrosTributos":0,
   "mtoOperGravadas":21.19,
   "mtoIGV":3.81,
   "totalImpuestos":3.81,
   "mtoImpVenta":25,
   "mtoOperExportacion":0,
   "fechaEmision":"2019-02-27T09:01:57-0500",
   "legends":[  
      {  
         "code":"1000",
         "value":"VEINTICINCO SOLES Y 00\/100"
      }
   ]
}

Observaciones

"notes": [
                "4092 - El nombre comercial del emisor no cumple con el formato establecido - INFO: 4092 (nodo: \"cac:PartyName/cbc:Name\" valor: \"\")",
                "4293 - El importe total de impuestos por línea no coincide con la sumatoria de los impuestos por línea. - Error en la linea: 1: 4293 (nodo: \"cac:TaxTotal/cbc:TaxAmount\" valor: \"0.00\")",
                "4287 - El precio unitario de la operación que está informando difiere de los cálculos realizados en base a la información remitida - Error en la linea: 1: 4287 (nodo: \"cac:AlternativeConditionPrice/cbc:PriceAmount\" valor: \"25.000000\")",
                "4309 - La sumatoria de valor de venta no corresponde a los importes consignados - INFO : 4309 (nodo: \"cac:LegalMonetaryTotal/cbc:LineExtensionAmount\" valor: \"0.00\")"
            ]

Al revisar el XML generado, veo

<cac:LegalMonetaryTotal>
        <cbc:LineExtensionAmount currencyID="PEN">0.00</cbc:LineExtensionAmount>
        <cbc:PayableAmount currencyID="PEN">25.00</cbc:PayableAmount>
    </cac:LegalMonetaryTotal>

LineExtension amount se genera como 0.00

<cac:TaxTotal>
            <cbc:TaxAmount currencyID="PEN">0.00</cbc:TaxAmount>
            ....

cbc:TaxAmount tambien se genera como 0.00

Hay algun campo que debo estar olvidando?

Formato del contenido de cdrZip

Hola @giansalex, el cdrZip de DocumentResponse ¿Es un tipo de dato String o base64? Estoy tratando de decodificar para convertirlo en un archivo Zip válido para almacenarlo, Tal como el ejemplo de greenter-sample.

Modificar pdf de facturas/boletas

Hola @giansalex, una consulta: si quiero modificar el formato de los pdfs, además de modificar el archivo invoice.html.twig que está en la carpeta \vendor\greenter\report\src\Report\Templates, debo modificar algún otro archivo?

Formato de fecha en Python

Hola, cómo debería formatear la fecha en python?

estoy usando

a = la_fecha.isoformat(timespec='milliseconds')

y luego la introduzco en

b = f"{b}Z" # Para agregar el Z

Obtengo fechas tales como:
'2020-06-24T01:54:46.128Z'

Con el formato idéntico al de la documentación en swagger. Sin embargo, al enviar, obtengo el error:

Invalid datetime '2020-06-24T01:54:46.128Z', expected one of the format 'Y-m-d\\TH:i:sP'. (500 Internal Server Error)

Pdf para comunicaciones de bajas

Hola Giancarlos, al parecer me topé con un bug en /voided/pdf
Creo q está renderizando hacia el template invoice.html.twig
Como resulevo esto porfa, muchas gracias.
image

Modelo JSON Notas de credito

Tienen un modelo del JSON que se le envía al endpoint de las notas de credito?

En el ambiente de prueba de SUNAT me aparece el erro de que no encuentra el documento de referencia

Usuario Secundario envió a producción

Hola @giansalex acabo de enviar el comprobante con la url de producción, pero recibí un mensage de error con codigo 0111 No tiene el perfil para enviar comprobantes electronicos, ¿tengo que poner en los archivos .env el usuario y clave sol, o el usuario secundario que generé en el portal de la Sunat?. Saludos

Error de resumen diario

Cuando intenté enviar un resumen diario tengo el siguiente problema:

La fecha de generación del resumen debe ser igual a la fecha consignada en el nombre del archivo - La fecha de generación del resumen debe ser igual a la fecha consignada en el nombre del archivo

No sé por que se produce ese error, si alguien puede ayudarme se lo agradecería, muchas gracias.

modelo json ubl 2.1

buenas tardes @giansalex , tendrás algún modelo de json para ubl 2.1?
json 2_1

{
"tipoDoc": "01",
"serie": "F001",
"correlativo": "123",
"fechaEmision": "2017-10-02T00:00:00-05:00",
"client": {
"tipoDoc": "6",
"numDoc": "20384203133",
"rznSocial": "ZV DISTRIBUIDORES S.A.C.",
"address": {

  "direccion": "AV. SANTA ELVIRA MZA. E LOTE. 1 (VILLA SOL) - LOS OLIVOS LIMA LIMA PERU"
}

},
"company": {
"ruc": "20480072872",
"razonSocial": "PESQUERA DIAMANTE S.A.",
"nombreComercial": "PESQUERA DIAMANTE S.A.",
"address": {
"ubigueo": "150131",
"codigoPais": "51",
"departamento": "LIMA",
"provincia": "LIMA",
"distrito": "SAN ISIDRO",
"urbanizacion": "-",
"direccion": "CAL. AMADOR MERINO REYNA NRO. 307 (EDIFICIO NACIONAL PISO 12 Y 13)"
}
},
"tipoMoneda": "PEN",
"valorVenta":300,
"sumOtrosCargos": 0,
"mtoOperGravadas": 200,
"mtoOperInafectas": 0,
"mtoOperExoneradas": 100,
"mtoIGV": 36,
"mtoISC": 0,
"totalImpuestos":36,
"mtoOtrosTributos": 0,
"mtoImpVenta": 336,
"details": [
{
"unidad": "NIU",
"cantidad": 2,
"codProducto": "P0D1",
"codProdSunat": "string",
"descripcion": "PROD 1",
"mtoValorUnitario": 100,
"descuento": 0,
"igv": 36,
"tipAfeIgv": "10",
"mtoPrecioUnitario": 118,
"mtoValorVenta": 200,
"porcentajeIgv": 18,
"totalImpuestos":36
},
{
"unidad": "KG",
"cantidad": 2,
"codProducto": "P0D2",
"codProdSunat": "string",
"descripcion": "PROD 2",
"mtoValorUnitario": 50,
"descuento": 0,
"igv": 0,
"tipAfeIgv": "20",
"mtoPrecioUnitario": 50,
"mtoValorVenta": 100,
"porcentajeIgv": 0,
"totalImpuestos":0
}
],
"legends": [
{
"code": "1000",
"value": "SON DOSCIENTOS TREINTA Y SEIS CON 00/100 SOLES"
}
],
"tipoOperacion": "0101",
"fecVencimiento": "2017-10-02T00:00:00-05:00",
"sumDsctoGlobal": 0,
"mtoDescuentos": 0,
"mtoOperGratuitas": 0,
"totalAnticipos": 0,
"compra": "O-C 100"

}

Configuración multiempresa

Existe la posibilidad de almacenar múltiples certificados, logos y credenciales sunat? para poder tener multiples emisores y no solo uno.
por ahora esos datos se extraen desde variables de entorno, ¿que tanto habria que modificar para conseguirlo?

Soapclient ClassNotFoundException

Estimados Sres... buenas tardes ...
Estoy intentando implementar la ultima actualización de Lycet. pero obtengo este error en localhost
image
uso symfony 4
php 7.2

en web me da esto
image
php 7.2

me pueden ayudar?.

Saludos

ERROR .ENV

Al ejecutar el comando: composer install --no-dev -o, me instala las dependencias pero con el siguiente error:

Generating optimized autoload files
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 255
!! PHP Fatal error: Uncaught RuntimeException: APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file. in D:\FACTURACIÓN ELECTRÓNICA\lycet\bin\console:20
!! Stack trace:
!! #0 {main}
!! thrown in D:\FACTURACIÓN ELECTRÓNICA\lycet\bin\console on line 20

Y al ejecutar el servidor PHP me lanza este:

Fatal error: Uncaught RuntimeException: APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file. in D:\FACTURACION ELECTRÓNICA\lycet\public\index.php:13 Stack trace: #0 {main} thrown in D:\FACTURACION ELECTRÓNICA\lycet\public\index.php on line 13

He configurado el .env como lo indican. Supongo que es porque no existe este archivo ni esta ruta...
WKHTMLTOPDF_PATH=full/path/wkhtmltopdf.exe

¿Será ese el error?

Descuento no reflejado

Hola @giansalex , una consulta: estoy enviando un descuento global en una factura, pero no se refleja en el xml de respuesta, debo enviarlo en algún otro lado?

image

image

error al generar pdf

Buenas noches @giansalex, que crees que estoy haciendo mal, el xml y cdr si esta normal, el error me muestra cuando utilizo el api "http:://localhost:8000/api/v1/invoice/pdf?token=123456".
pdf_lycet_rror

Consulta sobre manejo Configuración de la API

@giansalex tengo 2 dudas espero puedas ayudarme:

  1. Entiendo que en el archivo .env se coloca un token por defecto 123456, como podria generar un token más sofisticado? y en el cliente como sería su uso?
  2. Según entiendo, la API solo podría ser usado por un cliente a la vez? ya que requiere clave SOL y el certificado digital, si es así podrias orientarme o darme la idea masomenos de cómo podria hacer para usar la misma API con diferentes clientes los cuales tienen su propio logo y certificado digital?

Añadir información extra al PDF

Como podría hacer para enviar otros parametros para agregar en la plantilla del PDF, tales como una fecha de vencimiento, si es credito o contado, y demas información, muchas gracias

Error generando PDF

Hola #giansalex al enviar una solicitud axios.post('http://localhost:8000/api/v1/invoice/pdf', args, { params: { token: '123456' } }).then(res => console.log(res)).catch(err => console.log(err));
En la consola obtengo Uncaught Exception: The response content must be a string or object implementing __toString(), "boolean" given.
¿Que puede estar pasando?
Muchas gracias por la respuesta.

Habilitar UBL 2.1

Saludos

Como habilito UBL 2.1?

Estoy obteniendo el error:

No está autorizado a enviar comprobantes bajo el formato UBL 2.0 - No está autorizado a enviar comprobantes bajo el formato UBL 2.0. El ruc: 20395419715 debe generar su comprobante en la version UBL 2.1'

Lycet producción

Hola giansalex
Una consuta:
¿Que parametros debo configurar para cambiar de BETA a PRODUCCIÓN?

He cambiado las rutas por defecto por estas:
FE_URL=https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService
RE_URL=https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem/billService
GUIA_URL=https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem/billService

Cuando envio me sale este error:
0110: No se pudo obtener la informacion del tipo de usuario.

Ya he creado el usuario secundario y asignado los permisos correspondientes y ya es más de 1 día.

UBL 2.1

Actualizar a la versión de greenter con UBL 2.1

No se muestra el Hash en el PDF

Que se tendría que hacer para que no se muestre el hash en el pdf generado?
Encontré el codigo siguiente:
$parameters = [ 'system' => [ 'logo' => $logo, // 'hash' => '', ], 'user' => [ 'resolucion' => '-', 'header' => '', ] ];

Ahi está comentado el hash; si coloco cualquier texto ahí, aparece en la factura, lo que quiero saber es por qué esta comentado y que debo hacer para poder hacer conseguirlo.

Error formato de Fecha Invalido

Hola, al intentar enviar una factura o boleta me da un error de formato de fecha incorrecto. He configurado el time/zone en el php.ini. Me podrías ayudar por favor? Gracias de antemano.

error-api

image

FACTURA ACEPTADA CON OBSERVACIONES

Estoy enviando mis facturas en producción pero el cdr me indica observaciones,para el caso de FACTURAS GRAVADAS:
4293 - El importe total de impuestos por linea no coincide con la sumatoria de los impuestos por línea. - Error en la linea: 1: 4293 (nodo: "cac:TaxTotal/cbc:TaxAmount" valor: "0.00")
4287 - El precio unitario de la operación que está informando difiere de los calculos realizados en base a la informacion remitida - Error en la linea: 1: 4287 (nodo: "cac:AlternativeConditionPrice/cbc:PriceAmount" valor: "10")
4310 - La sumatoria del Total del valor de venta mas los impuestos no concuerda con la base imponible - INFO : 4310 (nodo: "/" valor: "")
FACTURAS EXONERADAS:
4310 - La sumatoria del Total del valor de venta más los impuestos no concuerda con la base imponible - INFO : 4310 (nodo: "/" valor:"")

JSON GRAVADAS:
{
"ublVersion": "2.1",
"tipoOperacion": "0101",
"tipoDoc": "01",
"serie": "F001",
"correlativo": "00000068",
"fechaEmision": "2019-12-02T19:25:13+01:00",
"client": {
"tipoDoc": "6",
"numDoc": "20603343710",
"rznSocial": "CHIN NEGOCIOS Y TRANSPORTES S.A.C.",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "AV. MARIANO CORNEJO NRO. 425 C.P. CPM. NUEVO SAN LORENZO III ETAPA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ",
"codLocal": "0000"
},
"email": null,
"telephone": null
},
"company": {
"ruc": "20604473081",
"razonSocial": "ASIU COSTA SAC",
"nombreComercial": "ASIU COSTA SAC",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "PRINCIPAL:CAL.CARLOS CASTAÑEDA NRO. 261 P.J. FRANCISCO CABRERA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ/",
"codLocal": "0000"
},
"email": null,
"telephone": null
},
"tipoMoneda": "PEN",
"mtoOperGravadas": 100,
"mtoOperInafectas": 0,
"mtoOperExoneradas": 0,
"mtoOperExportacion": 0,
"mtoIGV": 18,
"icbper": 0,
"totalImpuestos": 18,
"valorVenta": 100,
"mtoImpVenta": 118,
"SumDsctoGlobal": 0,
"MtoDescuentos": 0,
"Descuentos": null,
"details": [
{
"unidad": "ZZ",
"cantidad": 2,
"codProducto": "-",
"descripcion": "PRUEBA DE SISTEMAS",
"mtoValorUnitario": 50,
"mtoBaseIgv": 100,
"porcentajeIgv": 18,
"igv": 18,
"tipAfeIgv": "10",
"factorIcbper": "0",
"icbper": "0",
"TotalImpuestos": 18,
"mtoPrecioUnitario": 59,
"mtoValorVenta": 100
}
],
"legends": [
{
"code": "1000",
"value": "CIENTO DIECIOCHO CON 00 /100 SOLES"
}
]
}
JSON EXONERADAS:
{
"ublVersion": "2.1",
"tipoOperacion": "0101",
"tipoDoc": "01",
"serie": "F005",
"correlativo": "00002284",
"fechaEmision": "2019-12-03T11:10:25+01:00",
"client": {
"tipoDoc": "6",
"numDoc": "20603343710",
"rznSocial": "CHIN NEGOCIOS Y TRANSPORTES S.A.C.",
"address": {
"ubigueo": "140105",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "AV. MARIANO CORNEJO NRO. 425 C.P. CPM. NUEVO SAN LORENZO III ETAPA LAMBAYEQUE - CHICLAYO - JOSE LEONARDO ORTIZ",
"codLocal": "0000"
}
},
"company": {
"ruc": "20604209316",
"razonSocial": "ASIU SELVA SAC",
"nombreComercial": "ASIU SELVA SAC",
"address": {
"ubigueo": "160101",
"codigoPais": "PE",
"departamento": "-",
"provincia": "-",
"distrito": "-",
"urbanizacion": "-",
"direccion": "PRINCIPAL:JR. TRUJILLO NRO.726A P.J. SAN ANTONIO LORETO - MAYNAS - IQUITOS/SUCURSAL:CAR.FEDERICO BASADRE KM. 3600 UCAYALI - CORONEL PORTILLO - YARINACOCHA\t",
"codLocal": "0000"
}
},
"tipoMoneda": "PEN",
"mtoOperExoneradas": 100,
"mtoIGV": 0,
"totalImpuestos": 0,
"valorVenta": 100,
"mtoImpVenta": 100,
"details": [
{
"unidad": "ZZ",
"cantidad": 1,
"codProducto": "-",
"descripcion": "PRUEBA DE SISTEMAS",
"mtoValorUnitario": 100,
"mtoBaseIgv": 100,
"porcentajeIgv": 0,
"igv": 0,
"tipAfeIgv": "20",
"TotalImpuestos": 0,
"mtoPrecioUnitario": 100,
"mtoValorVenta": 100
}
],
"legends": [
{
"code": "1000",
"value": "CIEN CON 00 /100 SOLES"
}
]
}
¿Alguna sugerencia?

Limite de Envío de Facturas

Hola, quizá esta pregunta no pertenece a lycet, pero quisiera saber si SUNAT tiene un rate limit para enviar comprobantes?

Porque cuando intento enviar muchas facturas seguidas me aparece un error de

No tiene el perfil para enviar comprobantes electronicos - Detalle: Rejected by policy

el error es aleatorio. a veces aparece, a veces no

Comunicación de bajas - boletas de venta

Buen día, acabo de habilitar la comunicación de bajas; y al realizar las pruebas me dí cuenta que no puedo comunicar boletas de venta...
No sé si estoy mal, pero documentándome en [http://orientacion.sunat.gob.pe/index.php/empresas-menu/comprobantes-de-pago-empresas/comprobantes-de-pago-electronicos-empresas/see-desde-los-sistemas-del-contribuyente/2-comprobantes-que-se-pueden-emitir-desde-see-sistemas-del-contribuyente/factura-electronica-desde-see-del-contribuyente/3529-operatividad]

Explica que se puede hacer las notificaciones de baja tanto para boletas como para facturas.

Espero puedan darme alguna respuesta, gracias de antemano

Imprimir en ticketera

Estimado Giancarlos.

Como puedo hacer para imprimir en ticketera (matricial o termica, con logo y codigo QR), ya que la empresa tiene una ticketera y desea imprimir automáticamente cuando hace la venta en su aplicación.

Vale decir que actualmente envío un Json desde la aplicación y realiza la generación del PDF con lycet y de ahí imprime el PDF en papel bond y le entrega al cliente pero se demora un poco con este proceso.

Y por su puesto como es un negocio que tiene clientes en cola, desea que la impresión sea rápida. ¿Debe hacerse primero el PDF y mandarla a imprimir?¿de ser así como puedo mandarla a imprimir automáticamente de php? .... o Directamente imprimir en ticketera sin necesidad de generar pdf?.

Perdón por tu tiempo.

Que me recomiendas ...

4317 Debe consignar el Total Precio de Venta

Buenas noches, utilizo el API Rest Lycet con el client en csharp, pero no me logra generar el campo que SubTotal que creo es el motivo del error 4317. Gracias de antemano por su apoyo

Obtener Qr code

Hola @giansalex, tengo una url donde guardo el comprobante, ¿Cómo podría configurar Lycet para que obtenga el parámetro (url) y la muestre en el qr code?. Muy agradecido.

Json Model - Resumen Diario

Hola @giansalex , estube probando el resumen diario de boletas, pero me bota un error o en que estoy errando??. ("No existe información de serie o número. - Detalle: xxx.xxx.xxx value='ticket: 1550786770356 error: Error en la linea: 1. Solo se acepta informacion de comprobantes de referencia para notas (Credito o debito): el tipo de comprobante es: 03 y debe de ser 07 o 08.')
image
Ejemplo de prueba
{
"correlativo": "003",
"fecGeneracion": "2019-02-18T12:00:00+02:00",
"fecResumen": "2019-02-21T12:00:00+00:00",
"moneda": "PEN",
"company": {
"ruc": "20123456789",
"razonSocial": "REST. MORALY",
"nombreComercial": "MORALY",
"address": {
"ubigueo": "180101",
"codigoPais": "PE",
"departamento": "MOQUEGUA",
"provincia": "MARISCAL NIETO",
"distrito": "MOQUEGUA",
"urbanizacion": "-",
"direccion": "CALLE LIMA 398",
"codLocal": "0000"
},
"email": "[email protected]",
"telephone": "997788551"
},
"details": [
{
"tipoDoc": "03",
"serieNro": "B001-1",
"clienteTipo": "1",
"clienteNro": "42731344",
"docReferencia": {
"tipoDoc": "",
"nroDoc": ""
},
"estado": "1",
"total": "25.00",
"mtoOperGravadas": "21.19",
"mtoOperInafectas": 0,
"mtoOperExoneradas": 0,
"mtoOperExportacion": 0,
"mtoOperGratuitas": 0,
"mtoOtrosCargos": 0,
"mtoIGV": "3.81",
"mtoIvap": 0,
"mtoISC": 0,
"mtoOtrosTributos": 0
}
]
}

Error en pruebas con swagger

Estoy probando la api lycet desde swagger pero al momento de usar /invoice/send se tiene como respuesta: TypeError: Failed to fetch. A que se debe esto o estoy haciendo algo mal?

Resumen diario - Nota de crédito

Hola @giansalex, Estoy probando el envío del resumen diario y todo perfecto, pero al intentar enviar notas notas de credito de boletas electronicas tengo el siguiente error:

"No existe información de serie o número. - Detalle: xxx.xxx.xxx value='ticket: 1555974791671 error: Error en la linea: 1. Solo se acepta informacion de comprobantes de referencia para notas (Credito o debito): el tipo de comprobante es: 07 y debe de ser 07 o 08.'"

El JSON que estoy enviando es el siguiente:
{ "correlativo": "11159", "fecGeneracion": "2019-02-18T12:00:00+02:00", "fecResumen": "2019-02-21T12:00:00+00:00", "moneda": "PEN", "company": { "ruc": "20123456789", "razonSocial": "REST. MORALY", "nombreComercial": "MORALY", "address": { "ubigueo": "180101", "codigoPais": "PE", "departamento": "MOQUEGUA", "provincia": "MARISCAL NIETO", "distrito": "MOQUEGUA", "urbanizacion": "-", "direccion": "CALLE LIMA 398" } }, "details": [ { "tipoDoc": "07", "serieNro": "BC01-00000008", "clienteTipo": "1", "clienteNro": "47719456", "estado": "3", "total": "25.00", "mtoOperGravadas": "21.19", "mtoIGV": "3.81" } ] }

Espero puedas ayudarme, gracias de antemano

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.