Consultar constancia de inscripción de ARCA en Visual Fox Pro
Con pocas líneas de código

Los datos de inscripción de un contribuyente pueden ser solicitados a través de nuestro sistema, consumiendo los servicios de ARCA.
Esto lo vamos a hacer utilizando Afip SDK, que nos permite conectarnos a los servicios web de ARCA sin complicarnos con el uso de SOAP y la autenticación.
Ademas, vamos a usar https://github.com/sait/vfpjson/blob/master/json.prg para trabajar con JSON.
SET PROCEDURE TO "path\al\archivo\json.prg" ADDITIVE
Obtener la autorización
Lo primero que tenemos hacer es obtener el “Token authorization”, que seria la autorización en ARCA.
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.
Debemos ejecutar una solicitud POST al endpoint
https://app.afipsdk.com/api/v1/afip/auth
LOCAL loHttp, loResponse, lcJson, lcAuthUrl, loAuthData, loAuthResponse
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
lcAuthUrl = "https://app.afipsdk.com/api/v1/afip/auth"
loAuthData = '{' + ;
'"environment": "dev",' + ;
'"tax_id": "20409378472",' + ;
'"wsid": "ws_sr_constancia_inscripcion"' + ;
'}'
loHttp.Open("POST", lcAuthUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
loHttp.Send(loAuthData)
IF loHttp.Status <> 200
? "Error en la autorizacion: " + STR(loHttp.Status)
RETURN
ENDIF
loResponse = loHttp.responseText
loAuthResponse = json_decode(loResponse)
lcToken = loAuthResponse._token
lcSign = loAuthResponse._sign
? "Token: " + lcToken
? "Sign: " + lcSign
Aquí tenemos el token y sign que nos dio ARCA para usar el web service. No es necesario que lo guardemos, Afip SDK se encarga de esto por nosotros, debemos solicitarlo antes de cada llamada a los métodos del web service.
Obtenemos los datos
Vamos a obtener los datos del contribuyente con el CUIT 33693450239 (cambiar esto por el CUIT que queramos consultar).
Debemos ejecutar una solicitud POST al endpoint
https://app.afipsdk.com/api/v1/afip/requests
LOCAL loHttp, loResponse, lcRequestUrl, loRequestData, loRequestResponse
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
lcRequestUrl = "https://app.afipsdk.com/api/v1/afip/requests"
loRequestData = '{' + ;
'"environment": "dev",' + ;
'"method": "getPersona_v2",' + ;
'"wsid": "ws_sr_constancia_inscripcion",' + ;
'"params": {' + ;
' "token": "' + lcToken + '",' + ;
' "sign": "' + lcSign + '",' + ;
' "cuitRepresentada": "20409378472",' + ;
' "idPersona": 33693450239' + ;
'}' + ;
'}'
loHttp.Open("POST", lcRequestUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")
loHttp.Send(loRequestData)
IF loHttp.Status <> 200
? "Error al obtener los datos: " + STR(loHttp.Status)
RETURN
ENDIF
loResponse = loHttp.responseText
loRequestResponse = json_decode(loResponse)
? "Response: " + loResponse
En la respuesta, nos devolverá los datos de la constancia de inscripción del contribuyente.
{
"apellido": ...,
"nombre": ...,
"domicilioFiscal": ...,
"actividad": ...
}
Problemas comunes
Si estás teniendo 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
Con esto ya tenemos los datos del contribuyente. También podes usar el padrón de alcance 13 o el padrón de alcance 10.
Lo único que nos queda es pasar a modo producción para obtener información real de los contribuyentes.
Ante cualquier duda o pregunta al respecto, pueden resolverla rápidamente dentro de la Comunidad Afip SDK. Además, puedes unirte para estar al tanto de las novedades y problemas técnicos al usar los servicios de ARCA.