Antes de llamar a los Web Services de ARCA, necesitás un ticket de acceso (TA), también llamado Token Authorization.
Este TA expira tras un tiempo, pero no tenés que preocuparte por renovarlo: Afip SDK lo cachea y solicita uno nuevo automáticamente si es necesario. Solo llamá a la API y Afip SDK te devuelve el TA correspondiente.
Para obtener el TA se necesita un certificado digital, pero con Afip SDK podés empezar en modo desarrollo usando el CUIT 20-40937847-2 sin necesidad de uno.
import("fmt""strings""net/http""io/ioutil""time")url:="https://app.afipsdk.com/api/v1/afip/auth"method:="POST"authData,err:=json.Marshal(map[string]string{"environment":"dev","tax_id":"20409378472",// CUIT a utilizar"wsid":"wsfe",})payload:=strings.NewReader(string(authData))client:=&http.Client{}req,err:=http.NewRequest(method,url,payload)iferr!=nil{fmt.Println(err)return}// Reemplazar con tu access_token obtenido de https://app.afipsdk.comaccessToken:="TU_TOKEN_AQUI"req.Header.Add("Authorization","Bearer "+accessToken)req.Header.Add("Content-Type","application/json")res,err:=client.Do(req)iferr!=nil{fmt.Println(err)return}deferres.Body.Close()body,err:=ioutil.ReadAll(res.Body)ifres.StatusCode>=400{fmt.Println(string(body))return}varauthanyjson.Unmarshal([]byte(string(body)),&auth)
auth['token'] y auth['sign'] corresponden el TA que nos da ARCA. Debemos enviar estos datos en el body de cada solicitud a los Web Services. En el manual de cada Web Service verás dónde colocarlos.
2. Llamar al método del Web Service que necesites
Con el TA ya podés realizar las llamadas a los Web Services que necesites.
Es similar al código para obtener el TA, pero debés cambiar la URL y el body de la request.
Podés encontrar las URLs y los body correspondientes en las pestañas API de la documentación de cada Web Service.