Estamos buscando acceder a la API de afipsdk que es una plataforma que permite crear facturas electrónicas dentro de ARCA y primeramente segun la docuemntacuon la cual es esta para emitir facturas; ⚙️ Otros métodos útiles Crear certificado Podemos usar Afip SDK para crear certificados y evitar hacerlo de manera manual. Node PHP Ruby Python API Endpoint POST https://app.afipsdk.com/api/v1/afip/certs Body Nombre Tipo Valor environment string Usar "dev" para ambiente de desarrollo o "prod" para producción tax_id string CUIT al cual le queremos generar el certificado username string Usuario para ingresar a ARCA Para la mayoría es el mismo CUIT, pero al administrar una sociedad el CUIT con el que se ingresa es el del administrador de la sociedad. password string Contraseña para ingresar a ARCA. alias string Alias para el certificado (Nombre para reconocerlo en ARCA), un alias puede tener muchos certificados, si estas renovando un certificado podes utilizar el mismo alias Si estás por crear un certificado para producción, ten en cuenta que deberás agregar el access_token obtenido en https://app.afipsdk.com/ al header de autorización Copiar Authorization: Bearer AQUI_EL_ACCESS_TOKEN Y en los requests cambiar el parámetro environment: prod Copiar { "environment": "prod" } Ejemplo Copiar { "environment": "dev", "tax_id": "11111111111", "username": "11111111111", "password": "aqui_la_contraseña", "alias": "afipsdk" } Al crear el certificado nos devolverá un long_job_id y su status Response Copiar { "status": "in_process", "long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760" } Ahora debemos agregarle el long_job_id al body y llamar nuevamente al endpoint hasta que se cambie el status Copiar { "environment": "dev", "tax_id": "11111111111", "username": "11111111111", "password": "aqui_la_contraseña", "alias": "afipsdk", "long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760" } La recomendación es intentar cada 5 segundos, suele tardar entre 15 y 60 segundos en estar listo, dependiendo de la congestion de ARCA. STATUS 200 Copiar { "status": "complete", "data": { "cert": "-----BEGIN CERTIFICATE-----\nMIIDRzC...", "key": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCA..." } } STATUS 400 Copiar { "status": "error", "data": { "message":"Número de CUIL/CUIT incorrecto" } } Autorizar web service Una vez creado el certificado podemos usar Afip SDK para crearle autorizaciones a los web services Node PHP Ruby Python API Endpoint POST https://app.afipsdk.com/api/v1/afip/ws-auths Body Nombre Tipo Valor environment string Usar "dev" para ambiente de desarrollo o "prod" para producción tax_id string CUIT al cual le queremos generar la autorización username string Usuario para ingresar a ARCA. Para la mayoría es el mismo CUIT, pero al administrar una sociedad el CUIT con el que se ingresa es el del administrador de la sociedad. password string Contraseña para ingresar a ARCA. alias string Alias del certificado a autorizar (previamente creado). wsid string Id del web service a autorizar. Si estás por autorizar web service de producción, ten en cuenta que deberás agregar el access_token obtenido en https://app.afipsdk.com/ al header de autorización Copiar Authorization: Bearer AQUI_EL_ACCESS_TOKEN Y en los requests cambiar el parámetro environment: prod Copiar { "environment": "prod" } Ejemplo Copiar { "environment": "dev", "tax_id": "11111111111", "username": "11111111111", "password": "aqui_la_contraseña", "alias": "afipsdk", "wsid": "wsfe" } Al crear el certificado nos devolverá un long_job_id y su status Response Copiar { "status": "in_process", "long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760" } Ahora debemos agregarle el long_job_id al body y llamar nuevamente al endpoint hasta que se cambie el status Copiar { "environment": "dev", "tax_id": "11111111111", "username": "11111111111", "password": "aqui_la_contraseña", "alias": "afipsdk", "wsid": "wsfe", "long_job_id": "0d1e71e0-8882-4b14-b7f8-c5d716261760" } La recomendación es intentar cada 5 segundos, suele tardar entre 15 y 60 segundos en estar listo, dependiendo de la congestion de ARCA. STATUS 200 Copiar { "status": "complete", "data": { "status": "created" } } STATUS 400 Copiar { "status": "error", "data": { "statusCode": 400, "message": "No existe certificado con el alias afipsdk." } } Obtener XML de la ultima solicitud realizada Hay momentos en los cuales obtenemos un error y no sabemos como resolverlo, lo que podemos hacer es enviar un correo a sri@arca.gob.ar explicando el problema y adjuntarles el XML de solicitud y respuesta que te dio el web service para que te den una respuesta. Con ese método obtenés dicho XML. Recordá utilizar a este método luego de llamar al web service y no antes porque lo que te devuelve es el XML ultima solicitud. Node PHP Ruby Python API Endpoint GET https://app.afipsdk.com/api/v1/afip/requests/last-xml Response STATUS 200 Copiar { "request": "