Obtener información de un DNI con Python
Usando el padrón alcance 13 de ARCA
Requisitos previos
Para poder seguir esta guía, primero necesitarás:
Instalación
Lo primero es instalar la librería Afip.py
PyPI
pip install afip.py
Creamos una instancia de la clase Afip
Para usar los web services de ARCA, se requiere un certificado digital, con Afip SDK puedes integrarte en modo desarrollo usando el CUIT 20409378472 sin necesidad de obtener un certificado, para poder integrarte lo más rápido posible.
Te dejo este enlace por si luego quieres usar tu propio certificado para desarrollo.
from afip import Afip
# CUIT vinculado al certificado
CUIT = 20409378472
afip = Afip({ "access_token": "TU_ACCESS_TOKEN", "CUIT": CUIT })
Paso 1: Obtener el CUIT a partir del DNI
Primero obtenemos el CUIT con el método getTaxIDByDocument.
# DNI
national_id = 30111222 # Reemplazar por el DNI a consultar
tax_id = afip.RegisterScopeThirteen.getTaxIDByDocument(national_id)
if not tax_id:
raise Exception("No se encontró ningún CUIT asociado al DNI indicado.")
Paso 2: Obtener la información usando ese CUIT
Con el CUIT obtenido, consultamos getTaxpayerDetails para traer los datos completos.
taxpayer_details = afip.RegisterScopeThirteen.getTaxpayerDetails(tax_id)
if not taxpayer_details:
raise Exception(f"No se pudo obtener la información de la persona para el CUIT {tax_id}")
print(taxpayer_details)
Con esto ya obtenés la información de la persona partiendo del DNI.
Problemas comunes
Si estás teniendo una respuesta nula o el error “No existe persona con ese ID”, se debe a que no todos los CUIT están disponibles en el ambiente de desarrollo. Te recomiendo leer este artículo:
No existe persona con ese Id
Pasos para resolver este error
También podés revisar la guía oficial del servicio: Padrón alcance 13.
Lo único que nos queda es pasar a modo producción para consultar información real con tus propias credenciales.
Ante cualquier duda o pregunta, podés resolverla rápidamente en la Comunidad Afip SDK.