Liquidación Sector Pecuario


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 generarLiquidacion, puede que algun valor sea opcional.
LOCAL loDataObject
loDataObject = CREATEOBJECT("JSONObject")
    loDataObject.set("environment", "prod")
    loDataObject.set("method", "generarLiquidacion")
    loDataObject.set("wsid", "wslsp")
    LOCAL params
    params = CREATEOBJECT("JSONObject")
    loDataObject.set("params", params)
        LOCAL auth
        auth = CREATEOBJECT("JSONObject")
        params.set("auth", auth)
            auth.set("token", "string")
            auth.set("sign", "string")
            auth.set("cuit", 1)
        LOCAL solicitud
        solicitud = CREATEOBJECT("JSONObject")
        params.set("solicitud", solicitud)
            solicitud.set("codOperacion", 1)
            LOCAL emisor
            emisor = CREATEOBJECT("JSONObject")
            solicitud.set("emisor", emisor)
                emisor.set("puntoVenta", 1)
                emisor.set("tipoComprobante", 1)
                emisor.set("nroComprobante", 1)
                emisor.set("codCaracter", 1)
                emisor.set("fechaInicioActividades", "YYYY-MM-DD")
                emisor.set("iibb", "string")
                emisor.set("nroRUCA", 1)
                emisor.set("nroRenspa", "string")
                emisor.set("cuitAutorizado", 1)
            LOCAL receptor
            receptor = CREATEOBJECT("JSONObject")
            solicitud.set("receptor", receptor)
                receptor.set("codCaracter", 1)
                LOCAL operador
                operador = CREATEOBJECT("JSONObject")
                receptor.set("operador", operador)
                    operador.set("cuit", 1)
                    operador.set("iibb", "string")
                    operador.set("nroRUCA", 1)
                    operador.set("nroRenspa", "string")
                    operador.set("cuitAutorizado", 1)
            LOCAL datosLiquidacion
            datosLiquidacion = CREATEOBJECT("JSONObject")
            solicitud.set("datosLiquidacion", datosLiquidacion)
                datosLiquidacion.set("fechaComprobante", "YYYY-MM-DD")
                datosLiquidacion.set("fechaOperacion", "YYYY-MM-DD")
                datosLiquidacion.set("lugarRealizacion", "string")
                datosLiquidacion.set("codMotivo", 1)
                datosLiquidacion.set("fechaRecepcion", "YYYY-MM-DD")
                datosLiquidacion.set("fechaFaena", "YYYY-MM-DD")
                LOCAL frigorifico
                frigorifico = CREATEOBJECT("JSONObject")
                datosLiquidacion.set("frigorifico", frigorifico)
                    frigorifico.set("cuit", 1)
                    frigorifico.set("nroPlanta", 1)
            LOCAL guia
            guia = CREATEOBJECT("JSONArray")
            solicitud.set("guia", guia)
                LOCAL guia0
                guia0 = CREATEOBJECT("JSONObject")
                guia.add(guia0)
                    guia0.set("nroGuia", "string")
            LOCAL dte
            dte = CREATEOBJECT("JSONArray")
            solicitud.set("dte", dte)
                LOCAL dte0
                dte0 = CREATEOBJECT("JSONObject")
                dte.add(dte0)
                    dte0.set("nroDTE", "string")
                    dte0.set("nroRenspa", "string")
            LOCAL remito
            remito = CREATEOBJECT("JSONArray")
            solicitud.set("remito", remito)
                LOCAL remito0
                remito0 = CREATEOBJECT("JSONObject")
                remito.add(remito0)
                    remito0.set("nroRemito", "string")
            LOCAL itemDetalleLiquidacion
            itemDetalleLiquidacion = CREATEOBJECT("JSONArray")
            solicitud.set("itemDetalleLiquidacion", itemDetalleLiquidacion)
                LOCAL itemDetalleLiquidacion0
                itemDetalleLiquidacion0 = CREATEOBJECT("JSONObject")
                itemDetalleLiquidacion.add(itemDetalleLiquidacion0)
                    itemDetalleLiquidacion0.set("cuitCliente", 1)
                    itemDetalleLiquidacion0.set("codCategoria", 1)
                    itemDetalleLiquidacion0.set("tipoLiquidacion", 1)
                    itemDetalleLiquidacion0.set("cantidad", 1)
                    itemDetalleLiquidacion0.set("precioUnitario", 1.5)
                    itemDetalleLiquidacion0.set("alicuotaIVA", 1.5)
                    itemDetalleLiquidacion0.set("tipoIVANulo", "string")
                    itemDetalleLiquidacion0.set("cantidadCabezas", 1)
                    LOCAL raza
                    raza = CREATEOBJECT("JSONObject")
                    itemDetalleLiquidacion0.set("raza", raza)
                        raza.set("codRaza", 1)
                        raza.set("detalle", "string")
                    itemDetalleLiquidacion0.set("nroTropa", 1)
                    itemDetalleLiquidacion0.set("codCorte", 1)
                    itemDetalleLiquidacion0.set("cantidadKgVivo", 1)
                    itemDetalleLiquidacion0.set("cantidadPorCorte", 1)
                    itemDetalleLiquidacion0.set("precioRecupero", 1.5)
                    LOCAL liquidacionCompraAsociada
                    liquidacionCompraAsociada = CREATEOBJECT("JSONArray")
                    itemDetalleLiquidacion0.set("liquidacionCompraAsociada", liquidacionCompraAsociada)
                        LOCAL liquidacionCompraAsociada0
                        liquidacionCompraAsociada0 = CREATEOBJECT("JSONObject")
                        liquidacionCompraAsociada.add(liquidacionCompraAsociada0)
                            liquidacionCompraAsociada0.set("tipoComprobante", 1)
                            liquidacionCompraAsociada0.set("puntoVenta", 1)
                            liquidacionCompraAsociada0.set("nroComprobante", 1)
                            liquidacionCompraAsociada0.set("nroItem", 1)
                            liquidacionCompraAsociada0.set("cantidadAsociada", 1)
            LOCAL gasto
            gasto = CREATEOBJECT("JSONArray")
            solicitud.set("gasto", gasto)
                LOCAL gasto0
                gasto0 = CREATEOBJECT("JSONObject")
                gasto.add(gasto0)
                    gasto0.set("codGasto", 1)
                    gasto0.set("descripcion", "string")
                    gasto0.set("baseImponible", 1.5)
                    gasto0.set("alicuota", 1.5)
                    gasto0.set("importe", 1.5)
                    gasto0.set("alicuotaIVA", 1.5)
                    gasto0.set("tipoIVANulo", "string")
            LOCAL tributo
            tributo = CREATEOBJECT("JSONArray")
            solicitud.set("tributo", tributo)
                LOCAL tributo0
                tributo0 = CREATEOBJECT("JSONObject")
                tributo.add(tributo0)
                    tributo0.set("codTributo", 1)
                    tributo0.set("descripcion", "string")
                    tributo0.set("baseImponible", 1.5)
                    tributo0.set("alicuota", 1.5)
                    tributo0.set("importe", 1.5)
            solicitud.set("datosAdicionales", "string")

* 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
{
    "respuesta": {
        "cabecera": {
            "codOperacion": "integer",
            "cae": "long",
            "fechaVencimientoCae": "date",
            "nroCodigoBarras": "string",
            "fechaProcesoAFIP": "date"
        },
        "ajuste": {
            "tipoAjuste": "string",
            "modoAjuste": "string",
            "comprobanteAjustado": {
                "tipoComprobante": "short",
                "puntoVenta": "integer",
                "nroComprobante": "integer"
            }
        },
        "emisor": {
            "puntoVenta": "integer",
            "tipoComprobante": "integer",
            "nroComprobante": "integer",
            "codCaracter": "integer",
            "fechaInicioActividades": "date",
            "razonSocial": "string",
            "iibb": "string",
            "domicilioPuntoVenta": "string",
            "situacionIVA": "string",
            "nroRUCA": "integer",
            "nroRenspa": "string",
            "cuitAutorizado": "long",
            "nombreAutorizado": "string"
        },
        "receptor": {
            "cuit": "long",
            "nombre": "string",
            "codCaracter": "integer",
            "iibb": "string",
            "fechaInicioActividades": "date",
            "nroRenspa": "string",
            "nroRUCA": "integer",
            "cuitAutorizado": "long",
            "nombreAutorizado": "string",
            "situacionIVA": "string",
            "domicilio": "string",
            "nombreLocalidad": "string",
            "codProvincia": "integer",
            "codigoPostal": "integer"
        },
        "datosLiquidacion": {
            "fechaComprobante": "date",
            "fechaOperacion": "date",
            "lugarRealizacion": "string",
            "codMotivo": "integer",
            "fechaRecepcion": "date",
            "fechaFaena": "date",
            "frigorifico": {
                "cuit": "long",
                "razonSocial": "string",
                "nroPlanta": "integer"
            }
        },
        "guia": [
            {
                "nroGuia": "string"
            }
        ],
        "dte": [
            {
                "nroDTE": "string",
                "nroRenspa": "string"
            }
        ],
        "remito": [
            {
                "nroRemito": "string"
            }
        ],
        "itemDetalleLiquidacion": [
            {
                "nroItem": "integer",
                "cuitCliente": "long",
                "codCategoria": "integer",
                "cantidad": "integer",
                "cantidadCabezas": "integer",
                "raza": {
                    "codRaza": "short",
                    "detalle": "string"
                },
                "tipoLiquidacion": "integer",
                "precioUnitario": "decimal",
                "alicuotaIVA": "decimal",
                "tipoIVANulo": "string",
                "nroTropa": "long",
                "cantidadKgVivo": "integer",
                "cantidadPorCorte": "integer",
                "precioRecupero": "decimal",
                "codCorte": "integer",
                "unidadMedida": "string",
                "importeBruto": "decimal",
                "importeIVA": "decimal",
                "promedioKgVivo": "decimal",
                "promedioUM": "decimal",
                "rinde": "decimal",
                "precioKgVivo": "decimal",
                "importeTotal": "decimal",
                "liquidacionCompraAsociada": [
                    {
                        "tipoComprobante": "short",
                        "puntoVenta": "integer",
                        "nroComprobante": "integer",
                        "nroItem": "short",
                        "cantidadAsociada": "integer"
                    }
                ]
            }
        ],
        "gasto": [
            {
                "codGasto": "integer",
                "descripcion": "string",
                "baseImponible": "decimal",
                "alicuota": "decimal",
                "importe": "decimal",
                "alicuotaIVA": "decimal",
                "importeIVA": "decimal",
                "tipoIVANulo": "string"
            }
        ],
        "tributo": [
            {
                "codTributo": "integer",
                "descripcion": "string",
                "baseImponible": "decimal",
                "alicuota": "decimal",
                "importe": "decimal"
            }
        ],
        "datosAdicionales": "string",
        "resumenTotales": {
            "importeBruto": "decimal",
            "importeIVASobreBruto": "decimal",
            "importeTotalGastos": "decimal",
            "importeIVASobreGastos": "decimal",
            "importeTotalTributos": "decimal",
            "importeBonificaciones": "decimal",
            "importePenalizaciones": "decimal",
            "importeTotalNeto": "decimal"
        },
        "pdf": "base64String",
        "errores": {
            "error": [
                {
                    "codigo": "string",
                    "descripcion": "string"
                }
            ]
        },
        "metadata": {
            "servidor": "string",
            "fechaHora": "datetime"
        }
    }
}