Creación de VEPs para entidades externas (WSCREATEVEP)


Solicitud
LOCAL loHttp, loUrl, loData, loResponse

* 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.
LOCAL loDataObject
loDataObject = CREATEOBJECT("JSONObject")
    loDataObject.set("environment", "dev")
    loDataObject.set("method", "createVEP")
    loDataObject.set("wsid", "setipagob2b_createvep")
    LOCAL params
    params = CREATEOBJECT("JSONObject")
    loDataObject.set("params", params)
        params.set("token", "string")
        params.set("sign", "string")
        params.set("entidadDePago", 1)
        LOCAL vep
        vep = CREATEOBJECT("JSONObject")
        params.set("vep", vep)
            vep.set("nroVEP", 1)
            vep.set("fechaHoraCreacion", "string")
            vep.set("fechaExpiracion", "string")
            vep.set("fechaVencimiento", "string")
            vep.set("nroFormulario", 1)
            vep.set("orgRecaudDesc", "string")
            vep.set("codTipoPago", 1)
            vep.set("pagoDesc", "string")
            vep.set("pagoDescExtracto", "string")
            vep.set("usuarioCUIT", 1)
            vep.set("autorizanteCUIT", 1)
            vep.set("contribuyenteCUIT", 1)
            vep.set("establecimiento", 1)
            vep.set("concepto", 1)
            vep.set("conceptoDesc", "string")
            vep.set("subConcepto", 1)
            vep.set("subConceptoDesc", "string")
            vep.set("periodoFiscal", 1)
            vep.set("anticipoCuota", 1)
            vep.set("importe", 1.5)
            vep.set("ownerCuit", 1)
            vep.set("ownerTransactionId", 1)
            LOCAL Detalles
            Detalles = CREATEOBJECT("JSONObject")
            vep.set("Detalles", Detalles)
                LOCAL Detalle
                Detalle = CREATEOBJECT("JSONArray")
                Detalles.set("Detalle", Detalle)
                    LOCAL Detalle0
                    Detalle0 = CREATEOBJECT("JSONObject")
                    Detalle.add(Detalle0)
                        Detalle0.set("campo", 1)
                        Detalle0.set("campoTipo", "string")
                        Detalle0.set("campoDesc", "string")
                        Detalle0.set("contenido", "string")
                        Detalle0.set("contenidoDesc", "string")
            LOCAL Obligaciones
            Obligaciones = CREATEOBJECT("JSONObject")
            vep.set("Obligaciones", Obligaciones)
                LOCAL Obligacion
                Obligacion = CREATEOBJECT("JSONArray")
                Obligaciones.set("Obligacion", Obligacion)
                    LOCAL Obligacion0
                    Obligacion0 = CREATEOBJECT("JSONObject")
                    Obligacion.add(Obligacion0)
                        Obligacion0.set("impuesto", 1)
                        Obligacion0.set("impuestoDesc", "string")
                        Obligacion0.set("importe", 1.5)

* Convertimos el objeto en JSON
loData = json_encode(loDataObject)

* Creamos un cliente HTTP para llamar a la API
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
loUrl = "https://app.afipsdk.com/api/v1/afip/requests"

* Realizamos la llamada a la API
loHttp.Open("POST", loUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")

* Reemplazar con tu access_token obtenido de https://app.afipsdk.com
LOCAL accessToken
accessToken = "TU_TOKEN_AQUI"
loHttp.setRequestHeader("Authorization", "Bearer " + accessToken)

loHttp.Send(loData)

* En caso de error lo mostramos por pantalla
IF loHttp.Status <> 200
    ? STR(loHttp.responseText)
    RETURN
ENDIF

* Convertimos la respuesta en un objeto
loResponse = json_decode(loHttp.responseText)

* Mostramos la respuesta por pantalla
? loHttp.responseText
Respuesta
{
    "createVEPReturn": "long"
}