Este Post es parte de un post de como Conectase Con AFIP para hacer Facturación Electrónica.
Si llegaste desde otro lado, te recomiendo que veas ese primero
Conectarse con AFIP
http://exgetmessage.blogspot.com/2018/02/conectar-tu-aplicacion-con-afip-sin.html
Aca veremos exclusivamente como obtener el Certificado Digital para operar con los servidores de AFIP. Primero Veremos como obtener el certificado de Homologación (Testing) y luego el de Producción.
Primero tendremos que crear un Certificado con OpenSSL
Para esto seguiremos el instructivo oficial:
https://www.afip.gob.ar/ws/WSAA/WSAA.ObtenerCertificado.pdf
Basicamente nos dice que creemos un CRS con el programa OpenSSL, para esto, primero generamos una clave privada, luego el CRS con la clave anterior. Y finalmente para obtener el certificado le mandamos el CRS a la AFIP por su pagina web y nos daran el Certificado para poder trabajar.
Mas especificamente
1. Instalamos OpenSSL
Nota: yo use esta implementación ( http://slproweb.com/products/Win32OpenSSL.html )
2. Vamos con una ventana de comando al directorio del programa openssl.exe (C:\ProgramFiles\OpenSSL\bin")(O agregamos la carpeta a los PATH generales)
3. Ejecutamos el comando para crear la clave pivada
Nota: privada es el nombre del archivo donde se va a guardar la clave
4. Generamos el CSR mediante el comando:
Nota:
privada es la clave que generamos en el paso anterior
nom_emp es el nombre de la empresa, o destinatario, como aparece en la pagina de AFIP (Quien va a facturar)
subj_cn (Common Name) Aquí ingresan el Nombre de la empresa programadora, programador, o nombre de Aplicación
subj_cuit por el CUIT sin separadores de la empresa programadora
pedido es el nombre del archivo donde se guardara el CSR
por ejemplo:
Con esto tendremos el CSR en el archivo pedido. No necesita extensión porque vamos a usar el contenido únicamente
5. Vamos a la AFIP a pedir el certificado
Para esto tenemos dos formas, una, donde obtenemos el certificado de homologación (testing), y la otra donde obtenemos el certificado de producción. Cada certificado funciona únicamente con su servidor, es decir, no podes usar el certificado de homologación para el servidor de producción ni viceversa
Vamos a ir a la sección de Administración de Relaciones de Clave Fiscal
(De ser necesario seleccionamos a nuestro representante, osea nosotros mismos)
Ahora a vamos a Adherir Servicio
Ahí encontraremos el siguiente formulario
Acá llenamos los campos, El DN es el nombre representativo, podemos poner el mismo que usamos para el programa antes.
El la solicitud de certificado (CSR) vamos a poner el contenido del CSR que creamos en el paso anterior (Abrí el archivo pedido en un bloc de notas, copia el contenido, y pegarlo acá).
Debería quedarnos algo por el estilo
Ahora le damos al botón Crear DN y Obtener Certificado, si hicimos todo bien en el cuadro de abajo nos debería tirar el contenido del certificado que vamos a usar para conectarnos. Osea, Algo así:
El contenido del cuadro lo podemos copiar en un bloc de notas y guardarlo como certificado.crt.
Ahora, para algunas tecnologías ya con este certificado y la clave privada les puede bastar. Desconozco exactamente cuales les basta esto y cuales no. Lo que si se que .Net (VB.Net y C#) van a necesitar el certificado en formato pkcs12 (Certificado x509 + clave privada). Para esto afip nos propone crear un archivo alias.p12 y utilizar una especie de transformador de windows para obtener el certificado como lo necesitamos.
Utilizando este comando de openSSL haremos lo mismo mas rapido.
Nota: privada es la clave privada que generamos unos pasos atrás.
certificado.crt Es el certificado que nos dio la pagina de AFIP
certificado.pfx Es el nuevo certificado que estamos creando
Una vez obtenido el certificado, rápidamente, lo vamos a autorizar para que pueda usar particularmente el WebService de Facturación Electrónica, para eso, en el mismo WSASA vamos a la opción en el menú lateral Crear Autorizacion de Servicio
En el formulario que aparece, seleccionamos el DN que creamos, y en punto 5, el Web Service de Facturación Electrónica, (wsfe - Facturación Electrónica)
Ya tenemos el certificado listo para usar con el servicio de homologación de facturación electrónica
Primero, igual que antes, creamos un nuevo CSR (No usen el mismo que crearon antes).
Con el CSR vamos a la pagina de AFIP, después de logearnos, vamos a la opción de Administración de Certificados Digitales
Siguiente agregaremos un alias, si es la primera vez, obviamente no les aparecerá ningún alias, simplemente le damos a Agregar Alias
Asignamos un nombre al alias, y seleccionamos el CSR que creamos para este certificado y damos en Agregar Alias
Ahora, si todo salio bien, nos abrira el detalle del alias, tal vez nos lleve a la pantalla anterior, en ese caso simplemente le dan a Ver sobre el detalle creado, nos debería aparecer esta pantalla, donde le damos al botón de Descargar para descargar el certificado digital (crt)
Ahora deberiamos tener el Certificcado digital para operar contra el Web Service de produccion.
Igual que antes, vamos a convertirlo en un certificado psck12 para operar con nuestro proyecto. Lo Haremos con el siguiente código en OpenSSL
<codigo>openssl pkcs12 -export -out certificado.pfx -inkey privada -in certificado.crt</codigo>
Nota: privada es la clave privada que generamos unos pasos atrás.
certificado.crt Es el certificado que nos dio la pagina de AFIP
certificado.pfx Es el nuevo certificado que estamos creando
También, Igual que antes debemos autorizar este certificado para poder acceder al Web Service de Facturación Electrónica. Para eso, vamos a la pagina principal de AFIP y buscamos la opción de Administracion de Relaciones de Clave Fiscal
Si actuamos en representación de alguien no pedirá que lo seleccionemos, en caso que nadie nos halla cedido representación, no aparecerá esta pantalla
Si están representando a otro, Ese otro, el que va a facturar les tiene que autorizar, a través de la opción Adherir a Servicio, cosa que no voy a explicar acá. Para autorizar a nuestro propio certificado, seleccionamos la opción Nueva Relación
Nos aparecerá el "formulario" para la nueva relación. En este tenemos que seleccionar el Representado (si somos nosotros solos, no hay mucha opción), El Servicio (Web Service), y el certificado (El que creamos). Para esto, seleccionamos el Representado del ComboBox si no estamos ya seleccionados, y seleccionamos la opción Buscar en la sección de Servicio
Ahora, en un menú familiar, Buscamos dentro del desplegable que dice AFIP, donde dice Web Services, y dentro de ese, el que dice Facturación Electrónica
Nos llevara de vuelta al formulario, donde comprobaremos que se selecciono el servicio adecuado, ahora haciendo clic en el Buscar de la sección Representante, seleccionaremos el Certificado
En la nueva pantalla, simplemente seleccionamos el Alias que creamos para el certificado, donde dice CUIT/CUIL/CDI debería desactivarse solo, no hace falta que toquemos nada ahí, vamos directo a Confirmar
Ahora en el formulario de vuelta, Comprobamos, que este todo correcto (Representado, Servicio y Representante) y le damos a Confirmar
Y listo, ya tenemos el Certificado de Producción listo para usar. Recuerden que cualquiera que tenga sus datos y el certificado puede facturar a nombre de ustedes así que tengan cuidado con la confidencialidad del mismo.
Ya con estos estos Certificado podemos proceder a realizar el programa como nos corresponde.
Podes volver al post para continuar.
Glosario
AFIP - Administracion Federal de Ingresos Publicos
CAE - Codigo de Autorizacion Electronico
CAEA - CAE Anticipado
CSR - Certificate Singin Request, Requisito de Certificado de Firma
FE - Facturacion Electronica
Sign - Firma que acompa
TA - Ticket de Autenticacion
WS - Web Service
WSAA - Web Service de Autenticacion y Autorizacion
WSDL - Web Service Description Lenguage (Lenguaje de descripcion de WS)
WSFE - Web Service de Facturacion Electronica
WSN - Web Services de Negocios
Si llegaste desde otro lado, te recomiendo que veas ese primero
Conectarse con AFIP
http://exgetmessage.blogspot.com/2018/02/conectar-tu-aplicacion-con-afip-sin.html
Aca veremos exclusivamente como obtener el Certificado Digital para operar con los servidores de AFIP. Primero Veremos como obtener el certificado de Homologación (Testing) y luego el de Producción.
Primero tendremos que crear un Certificado con OpenSSL
Para esto seguiremos el instructivo oficial:
https://www.afip.gob.ar/ws/WSAA/WSAA.ObtenerCertificado.pdf
Basicamente nos dice que creemos un CRS con el programa OpenSSL, para esto, primero generamos una clave privada, luego el CRS con la clave anterior. Y finalmente para obtener el certificado le mandamos el CRS a la AFIP por su pagina web y nos daran el Certificado para poder trabajar.
Mas especificamente
1. Instalamos OpenSSL
Nota: yo use esta implementación ( http://slproweb.com/products/Win32OpenSSL.html )
2. Vamos con una ventana de comando al directorio del programa openssl.exe (C:\ProgramFiles\OpenSSL\bin")(O agregamos la carpeta a los PATH generales)
3. Ejecutamos el comando para crear la clave pivada
openssl genrsa -out privada 2048
Nota: privada es el nombre del archivo donde se va a guardar la clave
4. Generamos el CSR mediante el comando:
openssl req -new -key privada -subj "/C=AR/O=nom_emp/CN=subj_cn/serialNumber=CUIT subj_cuit" -out pedido
Nota:
privada es la clave que generamos en el paso anterior
nom_emp es el nombre de la empresa, o destinatario, como aparece en la pagina de AFIP (Quien va a facturar)
subj_cn (Common Name) Aquí ingresan el Nombre de la empresa programadora, programador, o nombre de Aplicación
subj_cuit por el CUIT sin separadores de la empresa programadora
pedido es el nombre del archivo donde se guardara el CSR
por ejemplo:
openssl req -new -key privada -subj "/C=AR/O= MARCEL GUILLERMO NICOLAS/CN=GESTIONPERSONAL/serialNumber=CUIT 20075140251" -out pedido
Con esto tendremos el CSR en el archivo pedido. No necesita extensión porque vamos a usar el contenido únicamente
5. Vamos a la AFIP a pedir el certificado
Para esto tenemos dos formas, una, donde obtenemos el certificado de homologación (testing), y la otra donde obtenemos el certificado de producción. Cada certificado funciona únicamente con su servidor, es decir, no podes usar el certificado de homologación para el servidor de producción ni viceversa
Homologación
Para esto vamos a la pagina de afip (http://afip.gob.ar/) e ingresamos con nuestras credenciales.Vamos a ir a la sección de Administración de Relaciones de Clave Fiscal
(De ser necesario seleccionamos a nuestro representante, osea nosotros mismos)
Ahora a vamos a Adherir Servicio
Buscamos donde dice AFIP, y donde dice Servicios Interactivos
Dentro de estos, buscamos el ultimo, que se llama
WSASS - Autogestión Certificados de Homologación
Nos saldrá una ventana de confirmación, a la cual de daremos confirmar
Nos debe salir una pantalla que confirme la operación exitosa.
Una vez habilitado el Sistema de Autogestión de Certificados de Homologación, vamos a la pantalla principal de la pagina de AFIP, probablemente nos pida que Iniciemos Sesión de vuelta.
Dentro de Servicios Habilitados buscaremos, usualmente al ultimo, el servicio
Al ingresar veremos el siguiente menú lateral, donde ingresaremos en la opción Nuevo CertificadoAhí encontraremos el siguiente formulario
Acá llenamos los campos, El DN es el nombre representativo, podemos poner el mismo que usamos para el programa antes.
El la solicitud de certificado (CSR) vamos a poner el contenido del CSR que creamos en el paso anterior (Abrí el archivo pedido en un bloc de notas, copia el contenido, y pegarlo acá).
Debería quedarnos algo por el estilo
Ahora le damos al botón Crear DN y Obtener Certificado, si hicimos todo bien en el cuadro de abajo nos debería tirar el contenido del certificado que vamos a usar para conectarnos. Osea, Algo así:
El contenido del cuadro lo podemos copiar en un bloc de notas y guardarlo como certificado.crt.
Ahora, para algunas tecnologías ya con este certificado y la clave privada les puede bastar. Desconozco exactamente cuales les basta esto y cuales no. Lo que si se que .Net (VB.Net y C#) van a necesitar el certificado en formato pkcs12 (Certificado x509 + clave privada). Para esto afip nos propone crear un archivo alias.p12 y utilizar una especie de transformador de windows para obtener el certificado como lo necesitamos.
Utilizando este comando de openSSL haremos lo mismo mas rapido.
openssl pkcs12 -export -out certificado.pfx -inkey privada -in certificado.crt
Nota: privada es la clave privada que generamos unos pasos atrás.
certificado.crt Es el certificado que nos dio la pagina de AFIP
certificado.pfx Es el nuevo certificado que estamos creando
Una vez obtenido el certificado, rápidamente, lo vamos a autorizar para que pueda usar particularmente el WebService de Facturación Electrónica, para eso, en el mismo WSASA vamos a la opción en el menú lateral Crear Autorizacion de Servicio
En el formulario que aparece, seleccionamos el DN que creamos, y en punto 5, el Web Service de Facturación Electrónica, (wsfe - Facturación Electrónica)
Ya tenemos el certificado listo para usar con el servicio de homologación de facturación electrónica
Producción
Primero, igual que antes, creamos un nuevo CSR (No usen el mismo que crearon antes).
Con el CSR vamos a la pagina de AFIP, después de logearnos, vamos a la opción de Administración de Certificados Digitales
Siguiente agregaremos un alias, si es la primera vez, obviamente no les aparecerá ningún alias, simplemente le damos a Agregar Alias
Asignamos un nombre al alias, y seleccionamos el CSR que creamos para este certificado y damos en Agregar Alias
Ahora, si todo salio bien, nos abrira el detalle del alias, tal vez nos lleve a la pantalla anterior, en ese caso simplemente le dan a Ver sobre el detalle creado, nos debería aparecer esta pantalla, donde le damos al botón de Descargar para descargar el certificado digital (crt)
Ahora deberiamos tener el Certificcado digital para operar contra el Web Service de produccion.
Igual que antes, vamos a convertirlo en un certificado psck12 para operar con nuestro proyecto. Lo Haremos con el siguiente código en OpenSSL
<codigo>openssl pkcs12 -export -out certificado.pfx -inkey privada -in certificado.crt</codigo>
Nota: privada es la clave privada que generamos unos pasos atrás.
certificado.crt Es el certificado que nos dio la pagina de AFIP
certificado.pfx Es el nuevo certificado que estamos creando
También, Igual que antes debemos autorizar este certificado para poder acceder al Web Service de Facturación Electrónica. Para eso, vamos a la pagina principal de AFIP y buscamos la opción de Administracion de Relaciones de Clave Fiscal
Si actuamos en representación de alguien no pedirá que lo seleccionemos, en caso que nadie nos halla cedido representación, no aparecerá esta pantalla
Si están representando a otro, Ese otro, el que va a facturar les tiene que autorizar, a través de la opción Adherir a Servicio, cosa que no voy a explicar acá. Para autorizar a nuestro propio certificado, seleccionamos la opción Nueva Relación
Nos aparecerá el "formulario" para la nueva relación. En este tenemos que seleccionar el Representado (si somos nosotros solos, no hay mucha opción), El Servicio (Web Service), y el certificado (El que creamos). Para esto, seleccionamos el Representado del ComboBox si no estamos ya seleccionados, y seleccionamos la opción Buscar en la sección de Servicio
Ahora, en un menú familiar, Buscamos dentro del desplegable que dice AFIP, donde dice Web Services, y dentro de ese, el que dice Facturación Electrónica
Nos llevara de vuelta al formulario, donde comprobaremos que se selecciono el servicio adecuado, ahora haciendo clic en el Buscar de la sección Representante, seleccionaremos el Certificado
En la nueva pantalla, simplemente seleccionamos el Alias que creamos para el certificado, donde dice CUIT/CUIL/CDI debería desactivarse solo, no hace falta que toquemos nada ahí, vamos directo a Confirmar
Ahora en el formulario de vuelta, Comprobamos, que este todo correcto (Representado, Servicio y Representante) y le damos a Confirmar
Y listo, ya tenemos el Certificado de Producción listo para usar. Recuerden que cualquiera que tenga sus datos y el certificado puede facturar a nombre de ustedes así que tengan cuidado con la confidencialidad del mismo.
Ya con estos estos Certificado podemos proceder a realizar el programa como nos corresponde.
Podes volver al post para continuar.
Glosario
AFIP - Administracion Federal de Ingresos Publicos
CAE - Codigo de Autorizacion Electronico
CAEA - CAE Anticipado
CSR - Certificate Singin Request, Requisito de Certificado de Firma
FE - Facturacion Electronica
Sign - Firma que acompa
TA - Ticket de Autenticacion
WS - Web Service
WSAA - Web Service de Autenticacion y Autorizacion
WSDL - Web Service Description Lenguage (Lenguaje de descripcion de WS)
WSFE - Web Service de Facturacion Electronica
WSN - Web Services de Negocios
Me salvaste de pelear horas con la configuracion del certificado, no tenia en el radar el tema del certificado pkcs12. Ademas la explicacion de como operar para test y produccion super claras.
ResponderEliminarMuchas gracias. Tomo mucho trabajo aprender a hacer esto solo. espero que les haya servido.
EliminarExcelente tutorial. Muchas gracias
ResponderEliminarMuchas gracias. Tomo mucho trabajo aprender a hacer esto solo. espero que les haya servido.
EliminarMuchas gracias por compartir, es de las explicaciones mas claras que encontre, mucho mas que las que ofrece AFIP.
ResponderEliminarMuchas gracias. Tomo mucho trabajo aprender a hacer esto solo. espero que les haya servido. No esperes muchas explicaciones de ellos.
EliminarHola! Actualmente no aparece el apartado "Administración de certificados digitales", cómo debo hacer?
ResponderEliminarDeberia Aparecer como Administracion de Certificados Digitales. Sino aparece hay por ahi tiene que habilitar el servicio en algun lado
EliminarMuy bien explicado y excelente nivel de detalle para orientar, como en mi caso, que no tenía idea de cómo hacerlo..., ha sido todo de gran ayuda!, muchas gracias!!!.
ResponderEliminarhola, muy bueno el tutorial. Pero tengo un problema al querer logearme me da el error "computador no autorizado a acceder al servicio", que error pude haber cometido?,gracias
ResponderEliminarHOLA unknown si necesitas ayuda todavia avisame. Estoy en proceso de realizar toda la operacion y va saliendo de a poco
ResponderEliminarGuillermo Marcel muchas gracias por el material. Super claro de entender y me imagino que fue un gran esfuerzo aprender a hacerlo solo. Recien estoy comenzando a aprender programacion y esto la verdad que es una gran ayuda! un Gran abrazo!!
ResponderEliminarExcelente explicación. Muchas gracias por compartir tu conocimiento y dedicarnos tu tiempo.
ResponderEliminarHola Guillermo es impresionante lo que hiciste y gracias a ti puedo ahora generar las fc, queria preguntarte si es posible referenciar esta pagina o introducirla dentro de mi sitio donde tengo una seccion de faq, aguardo confirmacion saludos y gracias por toda la info!
ResponderEliminarUn placer seria! un placer servir de ayuda
EliminarMuchas gracias por tu detallada información, de las más útiles que encontré en internet. Saludos
ResponderEliminarGracias por tomarte el tiempo de explicar el paso a paso. Excelente tutorial. Ni AFIP se animo a tanto. Yo hice el paso a paso. Utilice el ejemplo que se proporciona en la pagina para programadores de la afip. Pero al consumir el metodo LoginCMS me devuelve la siguiente excepcion: [Main]***EXCEPCION AL OBTENER TICKET: [ObtenerLoginTicketResponse]***Error INVOCANDO al servicio WSAA : Anulada la solicitud: No se puede crear un canal seguro SSL/TLS.
ResponderEliminarEstoy en la parte de homologación. Ya lo hice 2 veces al cert porque pense que podia ser eso, pero no. Alguna idea? Desde ya gracias.
Bueno ya enontre el problema. El ejemoplo de AFIP para .NET es demasiado antiguo. Al utilizarlo en 2019 el visual estudio lo pone en una version del framework muy avanzada. Hay que colocarlo en la version .NET 4.5 para que soporte Tls12.
EliminarEs decir tienen que agregarle antes de solicitar el ticket la siguiente linea:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Espero que alguien le sirva jajaja. Saludos!
Muchas gracias, y perdon por no haberlo visto antes! Lo hice hace varios años puede que algunas cosas hayan quedado un poco viejas jaja
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarWhy do casino gambling apps cost money? - Dr.D.C.
ResponderEliminarThe apps for iOS and Android 평택 출장안마 are designed to 김포 출장샵 provide users with the tools and convenience needed 문경 출장샵 to navigate and connect 세종특별자치 출장마사지 more easily to your 군포 출장샵 online
Hola... saben si es posible automatizar este proceso?? si existe alguna api, soap, lo que sea para que el usuario genere su punto de venta o certificado de manera automatica??
ResponderEliminar2023 y sigo usando este tutorial MUCHAS GRACIAS!
ResponderEliminarGenio, muchas gracias me sivió un montón, la doc de AFIP un asco.
ResponderEliminar