afipsdk / afip.js Goto Github PK
View Code? Open in Web Editor NEWLibreria para usar los Web Services de AFIP con Typescript y JavaScript
Home Page: https://afipsdk.com/
License: MIT License
Libreria para usar los Web Services de AFIP con Typescript y JavaScript
Home Page: https://afipsdk.com/
License: MIT License
Muy buen módulo! Hay manera de incluir descripción del producto/servicio vendido? Y de incluir más de un producto/servicio por factura, cada uno con su precio y descripción, etc?
Obtengo el siguiente error cuando estoy instanciando la libreria
Error: Error getting Token Autorization Error: ENOENT: no such file or directory, open '/Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Afip_res/afip.pem'
at /Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Afip.js:160:9
at async Afip.GetServiceTA (/Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Afip.js:159:2)
at async ElectronicBilling.getWSInitialRequest (/Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:286:27)
at async ElectronicBilling.executeRequest (/Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:264:25)
at async ElectronicBilling.createVoucher (/Users/leancabrera/repos/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:88:19)
La inicialización la estoy haciendo de la siguiente manera:
const afip = new Afip({ CUIT: XXXXXXXXX, cert: "./afip.pem", key: "./private_key.key" });
Hola!
Tratando de integrar AfipSdk a mi Node api, siguiendo los tutoriales y usando esos mismos recibí el siguiente error:
' UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'FECAEDetResponse' of undefined at ElectronicBilling._checkErrors (/api/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:329:36) at ElectronicBilling.executeRequest (/api/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:284:14) at processTicksAndRejections (internal/process/task_queues.js:97:5) at ElectronicBilling.createVoucher (/api/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:94:19) '
No encuentro respuestas, tampoco entiendo el problema.
Desde ya muchas gracias por la ayuda.
Line 91 in b9e53ce
No les parece que o bien debería ser opcional el tracking o al menos avisar en el readme que se hace tracking de datos que podrían considerarse "sensibles" ?
Buenas noches.
Existe un historico o motivo por el cual al mandar una factura romo RI afip devuelva Error: Not Found?
No es un error en el codigo, seguramente es un tema de mi configuracion local. El error que estoy viendo es:
const serverStatus = await afip.ElectronicBilling.getServerStatus();
^^^^^
SyntaxError: await is only valid in async function
Aclaro, tengo cero experiencia en js. Alguna idea de que puede ser ? (parece algo basico).
Hola, no entiendo como en este ejemplo no se encuentra el detalle del producto/servicio.
Tampoco lo encuentro en la documentacion.
Como se hace una factura A/B con un detalle correcto de productos/servicios con sus cantidades y valores?
Gracias
Hola existe la posibilidad de llamar a archivos dinamicos o se encuentra obligado a usar los default?
Hola, estoy usando la SDK y va 10 puntos, simplifica muchísimo el trabajo de integración con AFIP.
Quisiera saber si existe o esta planeado agregar algun método que genere un PDF con los datos de la factura electrónica.
En el siguiente link la afip pone un ejemplo. https://www.afip.gob.ar/fe/qr/ejemplo-de-comprobante.asp
Lo que si ya pude hacer, es generar el QR desarrollando un método propio, sirve como contribución al SDK o es algo fuera del scope?
Hice una instalacion limpia, sin nada raro instale el repositorio y lo importe y me devuelve esto al correr la app
Compiled with problems:X
ERROR in ./node_modules/@afipsdk/afip.js/src/Afip.js 1:11-24
Module not found: Error: Can't resolve 'fs' in '/Users/braianmellor/Documents/AFIP/sistema/node_modules/@afipsdk/afip.js/src'
Buenas tardes! Estoy queriendo obtener el último número de comprobante pero me sale el siguiente error
Error: Error getting Token Autorization Error: Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".
Hola buenas, tengo el siguiente error al intentar hacer una factura
/root/.pm2/logs/afipassef-error.log last 15 lines:
0|afipasse | SyntaxError: /root/grupo/afip-assef/node_modules/@afipsdk/afip.js/src/Afip_res/TA-20403312143-wsfe-production.json: Unexpected token } in JSON at position 1270
0|afipasse | at parse ()
0|afipasse | at Object.Module._extensions..json (internal/modules/cjs/loader.js:1128:22)
Este error aparecio hoy, en los ultimos dias las facturas se generaron de forma correcta.
Quedo atento a sus comentarios. Saludos.
npm advierte de dos vulnerabilidades graves: paquete node-force (parcheado en versiones a partir de 0.10.0) y xml-crypto (parcheado en versiones a partir de 2.0.0)
Hola! Me gustaria poder contribuir a la libreria, agregar algun que otro test por ejemplo.
Hay guias de contribucion? Estan aceptando contribuciones?
Saludos!
En las instrucciones pide que se guarde los archivos key
y cert
dentro del directorio del paquete dentro del node_modules/
Esta bien para pruebas locales, pero en un entorno real de uso, no se tiene acceso a node_modules o se deberia escribir un script para un post-deploy que copie estos archivos, lo cual es molesto.
Esto se podria resolver facilmente con una variable de entorno o una variable de configuracion al momento de inicializar el paquete, que tenga la ruta a los archivos.
Hola,
¿Como están? Espero que bien. Quería consultar si de casualidad tienen algún workaround o contemplan algún release para el futuro respecto a la generación de factura electrónica del tipo E, ya que en la documentación no veo ninguna referencia para este tipo de facturación. En la pagina aparece asi listada:
Web Service de Factura Electrónica de Exportación V1 ("wsfexv1") - R.G. N° 2.758 , para quienes emitan comprobantes tipo "E".
https://www.afip.gob.ar/ws/documentacion/ws-factura-electronica.asp
Agradezco su respuesta y su tiempo de antemano,
Saludos!
Buenas tardes, estoy sin entender algo. En ningún lugar dice nada de precios o suscripciones, pero al leer la documentacion de pasar a produccion solicita un token. Al querer generarlo, me creé un usuario e ingresé a https://app.afipsdk.com donde me dice que debo abonar 35 dolares x mes para poder utilizar en producción.
Es asi? si lo es creo que deberian colocar los pricing en el readme y no tomar a nadie por sorpresa una vez que finaliza el desarrollo y necesita pasar a producción.
Muchas gracias
Buenas tardes, les queria consultar si hay una forma de obtener la factura generada por AFIP con los datos del cliente (nombre o razón social, condición frente al IVA, domicilio, etc.) como el que se genera desde el portal con el servicio de facturación electronica. Me gustaría poder enviarla por mail una vez generada pero no encontré el template como para armarla yo.
Gracias.
Hola buenas, dejo este issue como consulta, tengo un nuevo cliente el cual su contador solo le envio el archivo crt y nada mas.
Es posible usar solo el crt?
const afip = new Afip({
CUIT: 11223334445,
// key: '../../../../../cetificados/key',
cert: '../../../../../cetificados/cert',
production: true,
access_token: 'token-prod'
});
buenas como estan? hice los primeros pasos como dice el readme pero me tira ese error con require , algun tip ?
Hola, cualquier padron que consulto me devuelve null, como si no existiera ningun cuit que le paso. Estan andando mal los servicios? Este es la linea por ejemplo:
const taxpayerDetails1 = await afip.RegisterScopeFive.getTaxpayerDetails(23423434);
Hola, al usar cualquier servicio de factura electrónica me devuelve este error:
(node:4161) UnhandledPromiseRejectionWarning: Error: Error getting Token Autorization Error: ns1:coe.alreadyAuthenticated: El CEE ya posee un TA valido para el acceso al WSN solicitado
at /Users/manusabarros/Documents/WorkSpace/afip-factura-electronica/.webpack/main/index.js:29730:9
at async Afip.GetServiceTA (/Users/manusabarros/Documents/WorkSpace/afip-factura-electronica/.webpack/main/index.js:29729:2)
at async ElectronicBilling.getWSInitialRequest (/Users/manusabarros/Documents/WorkSpace/afip-factura-electronica/.webpack/main/index.js:30309:27)
at async ElectronicBilling.executeRequest (/Users/manusabarros/Documents/WorkSpace/afip-factura-electronica/.webpack/main/index.js:30287:25)
at async ElectronicBilling.getVoucherTypes (/Users/manusabarros/Documents/WorkSpace/afip-factura-electronica/.webpack/main/index.js:30190:11)
Sólo funcionó la primera vez que probé el servicio getVoucherTypes
y luego todos los servicios de get me devuelven el mismo error.
Estoy utilizando un CUIT el cual está inscripto como monotributista. Al consultar el padrón para obtener los datos del cuit me devuelve vacio. Hay alguna configuración que es necesaria hacer para obtener los valores?
Los lenguajes modernos como Angular o React necesitan si o si este soporte.
Parece una herramienta muy poderosa, pero no se puede utilizar con estas tecnologías. :(
Hola estoy teniendo un problema para crear una factura para un producto excento de iva (segun afip ID = 2). Estoy recibiendo este error: Si ImpIva es igual a 0 el objeto Iva y AlicIva son obligatorios. Id iva = 3 (iva 0)
el codigo que estoy utilizando es el siguiente:
this.ImpIVA = 0; (porque es excento)
this.Iva.push({
Id: 2,
BaseImp: 1000,
Importe: 0,
});
La pregunta es si para ID = 2 (IVA excento se utilizan valores en 0 u otro valor, ya que hay un iva que es de 0% y es ID = 3)
Hola! el sdk tiene implementado para la factura de exportacion?
Hola me preguntaba si hay algun soporte para configurar y/o generar correctamente el certificado. Gracias!
Buen día! Tengo una duda con respecto a la generación del código QR. Para generarlo, ¿que debería incluir para que cuando lo escanee me derive a la web de AFIP y me muestre los datos?
Hola, te comento, estuve haciendo la implementacion de esta API, para el uso del Padron Alcance 5, cuestion, a la hora de retornar a la persona, ya no usa mas el res.persona (Archivo RegisterScopeFive.js :55), reemplazando por unicamente res ya soluciona el problema.
Otra cosa, cada tanto me tira ECONNRESET o ETIMEDOUT, estos 2 ultimos no se porque pueden llegar a ser.
Saludos!
Hola, Como va?
Estoy con un problemita que me esta volviendo loco..
Genere los 2 certificados 1 desde WSAAS para testing
y otro desde Administración de Certificados Digitales, en teoria para Produccion.
Cuando uso mi cuit en el modo testing, funciona ok, pero cuando lo paso a produccion y pongo el certifcado y la key me da este error:
Certificado no emitido por AC de confianza.
Probe, generando varias veces otros certificados, que coincidan los datos, que no coincidan. ya no se por donde mas encararlo.
por otra parte me esta pasando con otro CUIT, que me sale esto al usar en testing :
(600) ValidacionDeToken: No aparecio CUIT en lista de relaciones:
y en produccion el mismo error de Certificado no emitido por AC de confianza.
pero ya autorice todos los servicios desde WSAA .
Les agradezco desde ya por todo,
saludos!
Hola, buen dia.
Estoy usando el servicio autorizarCPEAutomotor del WSCPE y me tira un error "Error en la validacion del esquema XML". Entiendo que debe ser por que a lo mejor le estoy pasando mal algo de la informacion pero revise los campos obligatorios y los formatos y me parece que estaria todo bien:
const data = {
'auth': {
'token': ta.token,
'sign': ta.sign,
'cuitRepresentada': afip.CUIT
},
'solicitud': {
'cabecera': {
'tipoCP':74,
'cuitSolicitante':22222222222,
'sucursal':1,
'nroOrden':1
},
'origen': {
'productor':{
'codProvincia': 12,
'codLocalidad':14454
}
},
'correspondeRetiroProductor': false,
'esSolicitanteCampo': true,
'datosCarga':{
'codGrano':15,
'cosecha':2324,
'pesoBruto':45000,
'pesoTara':15000
},
'destino':{
'cuit':22222222222,
'esDestinoCampo': false,
'codProvincia': 12,
'codLocalidad':14454,
'planta':22222
},
'destinatario':{
'cuit':30532041690
},
'transporte':{
'cuitTransportista':22222222222,
'dominio':'zzz999',
'fechaHoraPartida':'2023-11-30T00:10:00',
'kmRecorrer':65,
'cuitChofer':22222222222,
'mercaderiaFumigada': true
}
}
};
Estaría genial que tenga soporte para TypeScript, más que nada para el autocompletado.
Me arroja ese error al intentar usarlo solo agregue el cert y la key
Buenas, cuando intento utilizar el metodo getVoucherInfo para obtener info sobre un comprobante me devuelve un error 500 con la leyenda "Campo Auth no fue ingresado o esta mal formado"
En el endpoint de mi api le paso por parametros ".../0&0002&11" donde 0 es el NroCbte que obtuve con el metodo getLastVoucher, 0002 es el PtoVenta y 11 CbteTipo ya que es monotributista.
Lo extraño es que en los otros metodos no me devuelve el error por el Auth.
Necesito solucionar esto rapidamente por favor.
el sdk pide un token con una suscripcion. Para desarrolladores o pequeños comercios tambien se cobra? el monto es muy superior para que un simple comercio pueda abonarlo. Existe planes reducidos o gratuitos?
Estoy tratando de obtener la informacion sobre los puntos de venta de un usuario pero siempre retorna error..
const salesPoints = await afip.ElectronicBilling.getSalesPoints();
console.log(salesPoints);
La respuesta recibida en todos los casos es
Error: (602) Sin Resultados: - Metodo FEParamGetPtosVenta at ElectronicBilling._checkErrors (/Users/robrondon/Aptugo/build/SistemaFacturacion/back-end/node_modules/.pnpm/@[email protected]/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:339:10) at ElectronicBilling.executeRequest (/Users/robrondon/Aptugo/build/SistemaFacturacion/back-end/node_modules/.pnpm/@[email protected]/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:284:14) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async ElectronicBilling.getSalesPoints (/Users/robrondon/Aptugo/build/SistemaFacturacion/back-end/node_modules/.pnpm/@[email protected]/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:173:11) at async salesPoints (/Users/robrondon/Aptugo/build/SistemaFacturacion/back-end/app/services/afip.service.js:30:23)
ya probe con 3 usuarios diferentes y nada.. Alguna idea?
Tengo la aplicacion correctamnete funcionando para factura electronica, tanto para testing como para produccion, pero no puedo hacer funcionar las consultas al padron de ningun nivel. En todas me sale error de "computador no autorizado" En AFIP hice la autorizacion a los servicios:
ws_sr_padron_a4
ws_sr_padron_a10
ws_sr_padron_a13
pero aun asi sigo obteniendo el mismo error...
Hola Ivan, para implementarlo como serian los pasos a seguir o que debería investigar? lo puedo desarrollar y te lo sumo al proyecto 💪 Solo que estoy perdido de por donde empezar😅
Alguno sabrá decirme como puedo informar los métodos de pago al generar una nueva factura?
gracias
Hola buenas tardes, estuve buscando en la documentacion informacion sobre la nota de debito, pero no encontre nada, esta implementado? se va a implementar? o solo sera cambiar tipo_de_nota ?
Quedo atento a sus comentarios. saludos.
Buenas noches, para que se necesita este fragmento de codigo para funcionar con AFIP??
if (!this.AdminClient && this.options['production'] === true) {
/** @private */
this.AdminClient = axios.create({
baseURL: 'https://app.afipsdk.com/api/',
timeout: 10000
});
this.AdminClient.defaults.headers.common['sdk-version-number'] = '0.7.8';
this.AdminClient.defaults.headers.common['sdk-library'] = 'javascript';
if (this.options['access_token']) {
this.AdminClient.defaults.headers.common['Authorization'] = `Bearer ${this.options['access_token']}`;
}
try {
await this.AdminClient.post('v1/sdk-events', {
"name": "initialized",
"properties": {
"environment": this.options['production'] === true ? "prod" : "dev",
"tax_id": `${this.options['CUIT']}`,
"afip_sdk_library": "javascript"
}
});
} catch (error) {
if (!error.response) {
throw error;
}
else if (error.response.data && error.response.data.message) {
throw Object.assign(new Error(error.response.data.message), error.response.data);
}
else {
throw Object.assign(new Error(error.response.statusText), error.response);
}
}
}
Buenas tardes!
Primero muchas gracias por esta implementacion.
Queria saber si tienen pensado incluir el servicio "wsmtxca".
Gracias!
Hola, esta implementada la carga del comprobante asociado en las Notas de credito y Notas de debito?
gracias!
Estoy obteniendo este error al instanciar la libreria:
Error: Error getting Token Autorization Error: Invalid PEM formatted message.
at /Users/arielabaruffaldi/Documents/afip/node_modules/@afipsdk/afip.js/src/Afip.js:179:9
at async Afip.GetServiceTA (/Users/arielabaruffaldi/Documents/afip/node_modules/@afipsdk/afip.js/src/Afip.js:178:2)
at async ElectronicBilling.getWSInitialRequest (/Users/arielabaruffaldi/Documents/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:302:27)
at async ElectronicBilling.executeRequest (/Users/arielabaruffaldi/Documents/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:280:25)
at async ElectronicBilling.createVoucher (/Users/arielabaruffaldi/Documents/afip/node_modules/@afipsdk/afip.js/src/Class/ElectronicBilling.js:94:19)
at async functionTest (/Users/arielabaruffaldi/Documents/afip/src/api/test.js:43:15)
La estoy instanciando así:
const CUIT = 11111111111;
const afip = new Afip({ CUIT: CUIT });
Gracias!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.