Creación de VEPs para entidades externas (WSCREATEVEP)


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 createVEP, puede que algun valor sea opcional.
Dim dictData As Dictionary
Set dictData = New Dictionary
    dictData.Add "environment", "prod"
    dictData.Add "method", "createVEP"
    dictData.Add "wsid", "setipagob2b_createvep"
    Dim params As Dictionary
    Set params = New Dictionary
    dictData.Add "params", params
        params.Add "token", "string"
        params.Add "sign", "string"
        params.Add "entidadDePago", 1
        Dim vep As Dictionary
        Set vep = New Dictionary
        params.Add "vep", vep
            vep.Add "nroVEP", 1
            vep.Add "fechaHoraCreacion", "string"
            vep.Add "fechaExpiracion", "string"
            vep.Add "fechaVencimiento", "string"
            vep.Add "nroFormulario", 1
            vep.Add "orgRecaudDesc", "string"
            vep.Add "codTipoPago", 1
            vep.Add "pagoDesc", "string"
            vep.Add "pagoDescExtracto", "string"
            vep.Add "usuarioCUIT", 1
            vep.Add "autorizanteCUIT", 1
            vep.Add "contribuyenteCUIT", 1
            vep.Add "establecimiento", 1
            vep.Add "concepto", 1
            vep.Add "conceptoDesc", "string"
            vep.Add "subConcepto", 1
            vep.Add "subConceptoDesc", "string"
            vep.Add "periodoFiscal", 1
            vep.Add "anticipoCuota", 1
            vep.Add "importe", 1.5
            vep.Add "ownerCuit", 1
            vep.Add "ownerTransactionId", 1
            Dim Detalles As Dictionary
            Set Detalles = New Dictionary
            vep.Add "Detalles", Detalles
                Dim Detalle As Collection
                Set Detalle = New Collection
                Detalles.Add "Detalle", Detalle
                    Dim Detalle0 As Dictionary
                    Set Detalle0 = New Dictionary
                    Detalle.Add Detalle0
                        Detalle0.Add "campo", 1
                        Detalle0.Add "campoTipo", "string"
                        Detalle0.Add "campoDesc", "string"
                        Detalle0.Add "contenido", "string"
                        Detalle0.Add "contenidoDesc", "string"
            Dim Obligaciones As Dictionary
            Set Obligaciones = New Dictionary
            vep.Add "Obligaciones", Obligaciones
                Dim Obligacion As Collection
                Set Obligacion = New Collection
                Obligaciones.Add "Obligacion", Obligacion
                    Dim Obligacion0 As Dictionary
                    Set Obligacion0 = New Dictionary
                    Obligacion.Add Obligacion0
                        Obligacion0.Add "impuesto", 1
                        Obligacion0.Add "impuestoDesc", "string"
                        Obligacion0.Add "importe", 1.5

' 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
{
    "createVEPReturn": "long"
}