Consumir Comunicaciones de Ventanilla Electrónica


Solicitud
Dim objHttp As Object
Dim strResponse As String
Dim strUrl As String
Dim strData As String
    
' Deben cambiar los datos de "params" por los que correspondan. 
' Esta request de ejemplo incluye todos posibles valores para 
' llamar al metodo consultarComunicaciones, puede que algun valor sea opcional.
Dim dictData As Dictionary
Set dictData = New Dictionary
    dictData.Add "environment", "prod"
    dictData.Add "method", "consultarComunicaciones"
    dictData.Add "wsid", "veconsumerws"
    Dim params As Dictionary
    Set params = New Dictionary
    dictData.Add "params", params
        Dim authRequest As Dictionary
        Set authRequest = New Dictionary
        params.Add "authRequest", authRequest
            authRequest.Add "token", "string"
            authRequest.Add "sign", "string"
            authRequest.Add "cuitRepresentada", 1
        Dim filter As Dictionary
        Set filter = New Dictionary
        params.Add "filter", filter
            filter.Add "estado", 1
            filter.Add "fechaDesde", "string"
            filter.Add "fechaHasta", "string"
            filter.Add "comunicacionIdDesde", 1
            filter.Add "comunicacionIdHasta", 1
            filter.Add "tieneAdjunto", True
            filter.Add "sistemaPublicadorId", 1
            filter.Add "pagina", 1
            filter.Add "resultadosPorPagina", 1
            filter.Add "referencia1", "string"
            filter.Add "referencia2", "string"

' Convertimos el objeto en JSON
strData = JsonConverter.ConvertToJson(dictData, Whitespace:=2)

' Creamos un cliente HTTP para llamar a la API
Set objHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
strUrl = "https://app.afipsdk.com/api/v1/afip/requests"

' Reemplazar con tu access_token obtenido de https://app.afipsdk.com
Dim accessToken As String
accessToken = "TU_TOKEN_AQUI"
objHttp.AddRequestHeader("Authorization", "Bearer " + accessToken)

' Realizamos la llamada a la API
With objHttp
    .Open "POST", strUrl, False
    .setRequestHeader "Content-Type", "application/json"
    .Send strData
    ' En caso de error lo mostramos por pantalla
    If .Status <> 200 Then
        MsgBox .responseText
        Exit Sub
    End If

    strResponse = .responseText
End With

' Convertimos la respuesta en un objeto
Set objJson = JsonConverter.ParseJson(strResponse)

' Mostramos la respuesta por pantalla
Debug.Print JsonConverter.ConvertToJson(objJson, Whitespace:=2)
Respuesta
{
    "RespuestaPaginada": {
        "pagina": "integer",
        "totalPaginas": "integer",
        "itemsPorPagina": "integer",
        "totalItems": "integer",
        "items": {
            "undefined": [
                {
                    "idComunicacion": "long",
                    "cuitDestinatario": "long",
                    "fechaPublicacion": "string",
                    "fechaVencimiento": "string",
                    "sistemaPublicador": "long",
                    "sistemaPublicadorDesc": "string",
                    "estado": "integer",
                    "estadoDesc": "string",
                    "asunto": "string",
                    "prioridad": "integer",
                    "tieneAdjunto": "bool",
                    "referencia1": "string",
                    "referencia2": "string"
                }
            ]
        }
    }
}