Ir al contenido


Foto

Factura Electrónica para Argentina

Factura Electrónica AFIP

  • Por favor identifícate para responder
135 respuestas en este tema

#121 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 mensajes

Escrito 23 julio 2015 - 06:48

WSHomologación.

 

¿puede ser que el WSHomologación esté fallando?. Si desde el simulador online de afip intento facturar productos solos o servicios solos. Falla da errores de fecha. Sólo anda para productos y servicios .

 

Y probando por sistema mediante dlls tambien pasa lo mismo, sólo autoriza si presta_serv :=3 que es la opcion (productos y servicios a la vez).??

 

Le ha pasado a alguien?


  • 0

#122 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 06 agosto 2015 - 08:31

Buenas, yo al final termine usando esto:
 
El instalador que viene de "fabrica" viene configurado solamente para que te sirva para homologacion (pruebas). Si lo queres llevar a entorno de produccion (facturas reales) hay que modificar algo en los binarios que generan el instalador (es codigo python), hay un tutorial en la misma pagina que explica como hacerlo. O bien pagas y te lo hacen todo. Yo todavia no lo toque y por el momento sigo en pruebasss
 
En la pagina hay muchisima documentacion y ejemplos en todos los lenguajes, incluso dephi. Siguiendolos yo llege a esto y funciona, me falta probar la modalidad batch


delphi
  1. var
  2.     WSAA, WSFEv1, tra, cms, ta, CAE, ok: Variant;
  3.     Id: integer;
  4.     Certificado, ClavePrivada, cache, url_wsdl, proxy, CUIT,
  5.     TotalNeto, TotalIVA, Fecha: string;
  6. begin
  7.  
  8. try
  9. CoInitialize(NIL);
  10. try
  11. // Crear objeto interface Web Service Autenticación y Autorización
  12. WSAA := CreateOleObject('WSAA');
  13.  
  14. // Generar un Ticket de Requerimiento de Acceso (TRA)
  15. tra := WSAA.CreateTRA;
  16.  
  17. // Certificado: certificado es el firmado por la AFIP
  18. // ClavePrivada: la clave privada usada para crear el certificado
  19. // Generar el mensaje firmado (CMS)
  20. // Especificar la ubicacion de los archivos certificado y clave privada
  21. cms := WSAA.SignTRA(tra, Certificado, ClavePrivada);
  22.  
  23. // Llamar al web service para autenticar:
  24. ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'); // Hologación
  25.  
  26. // Una vez obtenido, se puede usar el mismo token y sign por 6 horas
  27. // (este período se puede cambiar)
  28.  
  29. // Crear objeto interface Web Service de Factura Electrónica
  30. WSFEv1 := CreateOleObject('WSFEv1');
  31. // Setear tocken y sing de autorización (pasos previos)
  32. WSFEv1.Token := WSAA.Token;
  33. WSFEv1.Sign := WSAA.Sign;
  34. WSFEv1.CUIT := CUIT;
  35.  
  36. // Conectar al Servicio Web de Facturación
  37. cache := ''; // directorio temporal (usar predeterminado)
  38. url_wsdl := 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx'; // usar servicios1 para producción
  39. proxy := ''; // información de servidor intermedio (si corresponde)
  40. ok := WSFEv1.Conectar(cache, url_wsdl, proxy); // homologación
  41.  
  42. if not(OK) then
  43. raise Exception.Create('Conexion erronea');
  44.  
  45. with Comprobante do
  46. begin
  47.  
  48. TotalNeto := FormatFloat('0.##', (StrToCurr(ImporteNetoGrav1) +
  49. StrToCurr(ImporteNetoGrav2) +
  50. StrToCurr(ImporteNetoGrav3)));
  51.  
  52. TotalIVA := FormatFloat('0.##', (StrToCurr(ImporteIVA1) +
  53. StrToCurr(ImporteIVA2) +
  54. StrToCurr(ImporteIVA3)));
  55.  
  56.  
  57. Id := WSFEv1.CompUltimoAutorizado(TipoComp, PuntoVenta);
  58. DateTimeToString(Fecha, 'yyyymmdd', Date);
  59. // Llamo al WebService de Autorización para obtener el CAE
  60. WSFEv1.CrearFactura(1 {Concepto = Productos}, TipoDoc, NroDoc, TipoComp, PuntoVenta,
  61. Id + 1, Id + 1, Total, '0.00' { total conceptos }, TotalNeto,
  62. TotalIVA, PercepRetDeIngrBrutos, ImporteOpEx,
  63. Fecha, '', '', '', {fecha_vto_pago y desde / hasta. Solo usado por servicios }
  64. 'PES', '1.000');
  65.  
  66. if StrToCurr(ImporteIVA1) > 0 then
  67. WSFEv1.AgregarIva(CodigoIVA(AlicuotaIVA1), ImporteNetoGrav1, ImporteIVA1);
  68.  
  69. if StrToCurr(ImporteIVA2) > 0 then
  70. WSFEv1.AgregarIva(CodigoIVA(AlicuotaIVA2), ImporteNetoGrav2, ImporteIVA2);
  71.  
  72. if StrToCurr(ImporteIVA3) > 0 then
  73. WSFEv1.AgregarIva(CodigoIVA(AlicuotaIVA3), ImporteNetoGrav3, ImporteIVA3);
  74.  
  75. // ingresos brutos -> Segun tabla AFIP Codigo = 02 Descripcion = Impuestos provinciales
  76. if StrToCurr(PercepRetDeIngrBrutos) > 0 then
  77. WSFEv1.AgregarTributo(2, 'Impuestos provinciales', Total, { fix mePorcIngBrutos, } PercepRetDeIngrBrutos);
  78. end;
  79.  
  80. // solicito CAE
  81. CAE := WSFEv1.CAESolicitar;
  82.  
  83. if WSFEv1.Resultado <> 'A' then
  84. begin
  85. Writeln;
  86. with Comprobante do
  87. Writeln(Format('No se obtuvo cae para comp %s nro %s fecha %s', [TipoComp, NroComp, FechaEmision]));
  88. Writeln('Obs: ' + WSFEv1.Obs);
  89. Writeln('ErrMsg: ' + WSFEv1.ErrMsg);
  90. end;
  91.  
  92. if WSFEv1.Resultado = 'A' then
  93. begin
  94. // grabo en el archivo que me mandaron el CAE y fecha vto
  95. Comprobante.CAE := CAE;
  96. Comprobante.FechaVtoCae := WSFEv1.Vencimiento;
  97. end;
  98. end;
  99. finally
  100. CoUninitialize;
  101. end;
  102.  

 
Luego el comprobante PDF lo genero con un QuickReport de toda la vida, para el codigo de barras en la misma pagina tenes una utilidad que te genera una imagen .png que importas en el reporte y listo
 
Esta utilidad se llama PyI25, aca el enlace 
 
http://www.sistemasa...CódigosdeBarras

 

 

recien mire esto, ¡que bien resuelto! (y)


  • 0

#123 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 20 marzo 2016 - 04:20

¿Alguien probo si se puede generar el certificado desde un SO de 64 bits y utilizarlo en otro de 32 btis?

 

gracias


  • 0

#124 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 31 marzo 2016 - 03:27

Tengo este mensaje en https://wsaa.afip.go...rvices/LoginCms

 

 

LoginCms

Hi there, this is an AXIS service!

Perhaps there will be a form for invoking the service here...

 

no me acuerdo de haberlo visto antes. ¿esta caido?


  • 0

#125 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 31 marzo 2016 - 04:08

Segun la documentacion, el Metodo Dummy establece las propiedades AppServerStatusDbServerStatusAuthServerStatus, de la interface WSFEv1, y si retornan "OK", todo esta bien

 

Meti un boton por ahi que imprime en pantalla esas 3 variables (son 3 strings) y ahora mismo retorno OK para las 3


  • 0

#126 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 471 mensajes

Escrito 25 abril 2016 - 11:02

Revivo el tema nuevamente por una consulta..que puede servir a modo de tutorial:

 

si quisieramos utilizar los webservices para no utilizar componentes de tercero: tenemos que comenzar con el WSAA.

 

yo siempre tenia entendido que los webservices tenian funciones que uno podia "llamar", osea como cualquier servidor. Igualmente yo he estudiado que SOAP es un protocolo basado en xml, que es un metalenguaje, cada documento xml tiene una estructura definida que se puede ver en un archivo xsd.

 

pero por lo que veo en http://www.afip.gov...._WSAA_1.2.0.pdf

 

en la especificacion tecnica..como dice mas arriba hay que generar un documento xml con la hora de inicio, hora de fin del ticket de acceso y un id(numero que supongo es a eleccion). para lo mismo se provee el schema a completar..

 

Entonces habra que trabajar con alguna herramienta que complete el xml de acuerdo al xsd. Y que lea el xml recibido..podria ser un clientdataset por ejemplo...


  • 0

#127 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 25 abril 2016 - 12:40

 

si quisieramos utilizar los webservices para no utilizar componentes de tercero: tenemos que comenzar con el WSAA.

 

 

Siempre usas los webservices. Los componentes de terceros son una interface para que sea mas facil y transparente


  • 0

#128 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 471 mensajes

Escrito 25 abril 2016 - 01:02

Siempre usas los webservices. Los componentes de terceros son una interface para que sea mas facil y transparente

Me referia a usarlos directamente sin componentes..



Enviado desde mi SM-G530M mediante Tapatalk
  • 0

#129 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 22 febrero 2017 - 02:07

vaya sorpresa,hay que renovar todos los certificados :|


  • 0

#130 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 471 mensajes

Escrito 22 febrero 2017 - 04:07

vaya sorpresa,hay que renovar todos los certificados :|

Si. Ya hace unos meses. A partir del 1 de noviembre la clave debe ser generada con otro cifrado, se pone 2048 en vez de 1024. Osea usar SHA2. Segun dicen en foros AFIP rechaza certificado SHA1.


  • 0

#131 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 22 febrero 2017 - 04:28

vaya sorpresa,hay que renovar todos los certificados :|


No es del todo cierto. En realidad los certificados "viejos", la mayoria (por lo que pude observar en clientes y los comentarios en general) tenian fecha de caducidad febrero 2017. Aun asi, existe el caso de algunos (por ejemplo que se registraron en los web service en el transcurso del 2016) cuyo certificado vencia en fechas posteriores.

 

Lo que si, es que a partir de la fecha que comenta giulichajari, la AFIP solo acepta claves generadas de 2048 bits (antes 1024) y devuelve un certificado firmado con otro algoritmo de cifrado mas seguro


  • 0

#132 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 27 mayo 2017 - 07:03

Hola gente. ¿alguien probo la facturacion de lotes o varias consecutivas?

 

Debo cambiar la forma de factura para una distribuidora. Actualmente factura como punto de venta y voy a agregar facturacion de pedidos, esto seria: los vendedores cargan pedidos y luego se factura el lote.

 

A la tarde hago la primer prueba, tengo duda, si hacer un solo LOGIN o uno por pedido tambien si el webservice responde correctamente a la solicitud masiva de CAEs

 

 

Saludos


  • 1

#133 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 27 mayo 2017 - 09:31

La verdad nunca lo probe, como no me gusta para nada el webservice este (anda peor que mejor) no quise meterme en cosas mas complicadas

 

Lo que si te puedo decir es que necesitas hacer el login solo una vez y luego mandar el lote y procesar el lote de respuestas. Y que no se te corte la conexion en el medio (tuya o del webservice, que suele pasar) porque sino hay que hacer un reproceso (que la verdad no entiendo bien como es) para recuperar la informacion perdida!

 

Aca esta la documentacion: http://www.sistemasa...ddemúltiplesCAE

 

No encontre ningun ejemplo ni mucho mas


  • 1

#134 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 471 mensajes

Escrito 28 mayo 2017 - 08:24

La verdad nunca lo probe, como no me gusta para nada el webservice este (anda peor que mejor) no quise meterme en cosas mas complicadas

Lo que si te puedo decir es que necesitas hacer el login solo una vez y luego mandar el lote y procesar el lote de respuestas. Y que no se te corte la conexion en el medio (tuya o del webservice, que suele pasar) porque sino hay que hacer un reproceso (que la verdad no entiendo bien como es) para recuperar la informacion perdida!

Aca esta la documentacion: http://www.sistemasa...ddemúltiplesCAE

No encontre ningun ejemplo ni mucho mas

El problema es no enviar dos veces las mismas facturas. Porque pagaria impuestos dos veces el cliente. Habria que tener un proceso que elimine una factura de una lista en la medida que se obtienen los CAE. El problema es la factura en el momento del corte.

Enviado desde mi SM-G530M mediante Tapatalk
  • 0

#135 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 07 julio 2020 - 12:25


php
  1. No se autorizo el comprobante, detalle: Si el comprobante es Debito o Credito,
  2. enviar estructura CbteAsoc o PeriodoAsoc.

¿Alguien tiene ese error a la fecha?


  • 0

#136 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 mensajes

Escrito 07 julio 2020 - 12:40

Hola, quizás este árticulo te ayude https://www.ignacioo...otas-de-debito/

Pero no estoy en el tema de la facturación electrónica, le vengo escapando.


  • 0





Etiquetado también con una o más de estas palabras: Factura Electrónica, AFIP