Obtener información de un DNI con Ruby
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.rb
Gemfile
gem 'afip.rb', '~> 1.0', '>= 1.0.1'
Gem
gem install afip.rb
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.
require "afip"
# CUIT vinculado al certificado
CUIT = 20409378472
afip = Afip.new({ "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)
raise "No se encontró ningún CUIT asociado al DNI indicado." if tax_id.nil?
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)
raise "No se pudo obtener la información de la persona para el CUIT #{tax_id}" if taxpayer_details.nil?
puts taxpayer_details
Con esto ya obtenés la información de la persona partiendo del DNI.
Problemas comunes
Si recibís una respuesta vacía o el error “No existe persona con ese ID”, te recomiendo 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 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.