Factura 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 FECompConsultar, puede que algun valor sea opcional.
Dim dictData As Dictionary
Set dictData = New Dictionary
    dictData.Add "environment", "dev"
    dictData.Add "method", "FECompConsultar"
    dictData.Add "wsid", "wsfe"
    Dim params As Dictionary
    Set params = New Dictionary
    dictData.Add "params", params
        Dim Auth As Dictionary
        Set Auth = New Dictionary
        params.Add "Auth", Auth
            Auth.Add "Token", "string"
            Auth.Add "Sign", "string"
            Auth.Add "Cuit", 1
        Dim FeCompConsReq As Dictionary
        Set FeCompConsReq = New Dictionary
        params.Add "FeCompConsReq", FeCompConsReq
            FeCompConsReq.Add "CbteTipo", 1
            FeCompConsReq.Add "CbteNro", 1
            FeCompConsReq.Add "PtoVta", 1

' 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
{
    "FECompConsultarResult": {
        "ResultGet": {
            "Concepto": "integer",
            "DocTipo": "integer",
            "DocNro": "long",
            "CbteDesde": "long",
            "CbteHasta": "long",
            "CbteFch": "string",
            "ImpTotal": "decimal",
            "ImpTotConc": "decimal",
            "ImpNeto": "decimal",
            "ImpOpEx": "decimal",
            "ImpTrib": "decimal",
            "ImpIVA": "decimal",
            "FchServDesde": "string",
            "FchServHasta": "string",
            "FchVtoPago": "string",
            "MonId": "string",
            "MonCotiz": "decimal",
            "CanMisMonExt": "string",
            "CondicionIVAReceptorId": "integer",
            "CbtesAsoc": {
                "CbteAsoc": [
                    {
                        "Tipo": "integer",
                        "PtoVta": "integer",
                        "Nro": "long",
                        "Cuit": "string",
                        "CbteFch": "string"
                    }
                ]
            },
            "Tributos": {
                "Tributo": [
                    {
                        "Id": "short",
                        "Desc": "string",
                        "BaseImp": "decimal",
                        "Alic": "decimal",
                        "Importe": "decimal"
                    }
                ]
            },
            "Iva": {
                "AlicIva": [
                    {
                        "Id": "integer",
                        "BaseImp": "decimal",
                        "Importe": "decimal"
                    }
                ]
            },
            "Opcionales": {
                "Opcional": [
                    {
                        "Id": "string",
                        "Valor": "string"
                    }
                ]
            },
            "Compradores": {
                "Comprador": [
                    {
                        "DocTipo": "integer",
                        "DocNro": "long",
                        "Porcentaje": "decimal"
                    }
                ]
            },
            "PeriodoAsoc": {
                "FchDesde": "string",
                "FchHasta": "string"
            },
            "Actividades": {
                "Actividad": [
                    {
                        "Id": "long"
                    }
                ]
            },
            "Resultado": "string",
            "CodAutorizacion": "string",
            "EmisionTipo": "string",
            "FchVto": "string",
            "FchProceso": "string",
            "Observaciones": {
                "Obs": [
                    {
                        "Code": "integer",
                        "Msg": "string"
                    }
                ]
            },
            "PtoVta": "integer",
            "CbteTipo": "integer"
        },
        "Errors": {
            "Err": [
                {
                    "Code": "integer",
                    "Msg": "string"
                }
            ]
        },
        "Events": {
            "Evt": [
                {
                    "Code": "integer",
                    "Msg": "string"
                }
            ]
        }
    }
}