Factura Electrónica
Solicitud de Código de Autorización Electrónico (CAE)
Factura Electrónica
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 FECAESolicitar, puede que algun valor sea opcional.
LOCAL loDataObject
loDataObject = CREATEOBJECT("JSONObject")
loDataObject.set("environment", "prod")
loDataObject.set("method", "FECAESolicitar")
loDataObject.set("wsid", "wsfe")
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 FeCAEReq
FeCAEReq = CREATEOBJECT("JSONObject")
params.set("FeCAEReq", FeCAEReq)
LOCAL FeCabReq
FeCabReq = CREATEOBJECT("JSONObject")
FeCAEReq.set("FeCabReq", FeCabReq)
FeCabReq.set("CantReg", 1)
FeCabReq.set("PtoVta", 1)
FeCabReq.set("CbteTipo", 1)
LOCAL FeDetReq
FeDetReq = CREATEOBJECT("JSONObject")
FeCAEReq.set("FeDetReq", FeDetReq)
LOCAL FECAEDetRequest
FECAEDetRequest = CREATEOBJECT("JSONArray")
FeDetReq.set("FECAEDetRequest", FECAEDetRequest)
LOCAL FECAEDetRequest0
FECAEDetRequest0 = CREATEOBJECT("JSONObject")
FECAEDetRequest.add(FECAEDetRequest0)
FECAEDetRequest0.set("Concepto", 1)
FECAEDetRequest0.set("DocTipo", 1)
FECAEDetRequest0.set("DocNro", 1)
FECAEDetRequest0.set("CbteDesde", 1)
FECAEDetRequest0.set("CbteHasta", 1)
FECAEDetRequest0.set("CbteFch", "string")
FECAEDetRequest0.set("ImpTotal", 1.5)
FECAEDetRequest0.set("ImpTotConc", 1.5)
FECAEDetRequest0.set("ImpNeto", 1.5)
FECAEDetRequest0.set("ImpOpEx", 1.5)
FECAEDetRequest0.set("ImpTrib", 1.5)
FECAEDetRequest0.set("ImpIVA", 1.5)
FECAEDetRequest0.set("FchServDesde", "string")
FECAEDetRequest0.set("FchServHasta", "string")
FECAEDetRequest0.set("FchVtoPago", "string")
FECAEDetRequest0.set("MonId", "string")
FECAEDetRequest0.set("MonCotiz", 1.5)
FECAEDetRequest0.set("CanMisMonExt", "string")
FECAEDetRequest0.set("CondicionIVAReceptorId", 1)
LOCAL CbtesAsoc
CbtesAsoc = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("CbtesAsoc", CbtesAsoc)
LOCAL CbteAsoc
CbteAsoc = CREATEOBJECT("JSONArray")
CbtesAsoc.set("CbteAsoc", CbteAsoc)
LOCAL CbteAsoc0
CbteAsoc0 = CREATEOBJECT("JSONObject")
CbteAsoc.add(CbteAsoc0)
CbteAsoc0.set("Tipo", 1)
CbteAsoc0.set("PtoVta", 1)
CbteAsoc0.set("Nro", 1)
CbteAsoc0.set("Cuit", "string")
CbteAsoc0.set("CbteFch", "string")
LOCAL Tributos
Tributos = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("Tributos", Tributos)
LOCAL Tributo
Tributo = CREATEOBJECT("JSONArray")
Tributos.set("Tributo", Tributo)
LOCAL Tributo0
Tributo0 = CREATEOBJECT("JSONObject")
Tributo.add(Tributo0)
Tributo0.set("Id", 1)
Tributo0.set("Desc", "string")
Tributo0.set("BaseImp", 1.5)
Tributo0.set("Alic", 1.5)
Tributo0.set("Importe", 1.5)
LOCAL Iva
Iva = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("Iva", Iva)
LOCAL AlicIva
AlicIva = CREATEOBJECT("JSONArray")
Iva.set("AlicIva", AlicIva)
LOCAL AlicIva0
AlicIva0 = CREATEOBJECT("JSONObject")
AlicIva.add(AlicIva0)
AlicIva0.set("Id", 1)
AlicIva0.set("BaseImp", 1.5)
AlicIva0.set("Importe", 1.5)
LOCAL Opcionales
Opcionales = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("Opcionales", Opcionales)
LOCAL Opcional
Opcional = CREATEOBJECT("JSONArray")
Opcionales.set("Opcional", Opcional)
LOCAL Opcional0
Opcional0 = CREATEOBJECT("JSONObject")
Opcional.add(Opcional0)
Opcional0.set("Id", "string")
Opcional0.set("Valor", "string")
LOCAL Compradores
Compradores = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("Compradores", Compradores)
LOCAL Comprador
Comprador = CREATEOBJECT("JSONArray")
Compradores.set("Comprador", Comprador)
LOCAL Comprador0
Comprador0 = CREATEOBJECT("JSONObject")
Comprador.add(Comprador0)
Comprador0.set("DocTipo", 1)
Comprador0.set("DocNro", 1)
Comprador0.set("Porcentaje", 1.5)
LOCAL PeriodoAsoc
PeriodoAsoc = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("PeriodoAsoc", PeriodoAsoc)
PeriodoAsoc.set("FchDesde", "string")
PeriodoAsoc.set("FchHasta", "string")
LOCAL Actividades
Actividades = CREATEOBJECT("JSONObject")
FECAEDetRequest0.set("Actividades", Actividades)
LOCAL Actividad
Actividad = CREATEOBJECT("JSONArray")
Actividades.set("Actividad", Actividad)
LOCAL Actividad0
Actividad0 = CREATEOBJECT("JSONObject")
Actividad.add(Actividad0)
Actividad0.set("Id", 1)
* 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.responseTextRespuesta
{
"FECAESolicitarResult": {
"FeCabResp": {
"Cuit": "long",
"PtoVta": "integer",
"CbteTipo": "integer",
"FchProceso": "string",
"CantReg": "integer",
"Resultado": "string",
"Reproceso": "string"
},
"FeDetResp": {
"FECAEDetResponse": [
{
"Concepto": "integer",
"DocTipo": "integer",
"DocNro": "long",
"CbteDesde": "long",
"CbteHasta": "long",
"CbteFch": "string",
"Resultado": "string",
"Observaciones": {
"Obs": [
{
"Code": "integer",
"Msg": "string"
}
]
},
"CAE": "string",
"CAEFchVto": "string"
}
]
},
"Events": {
"Evt": [
{
"Code": "integer",
"Msg": "string"
}
]
},
"Errors": {
"Err": [
{
"Code": "integer",
"Msg": "string"
}
]
}
}
}