Factura Electrónica


Solicitud
import 'package:http/http.dart' as http;
import 'dart:convert';

// Creamos un cliente HTTP para llamar a la API
var headersWS = { 'Content-Type': 'application/json' };
var requestWS = http.Request('POST', Uri.parse('https://app.afipsdk.com/api/v1/afip/requests'));

// 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.
requestWS.body = json.encode({
    "environment": "dev",
    "method": "FECAESolicitar",
    "wsid": "wsfe",
    "params": {
        "Auth": {
            "Token": "string",
            "Sign": "string",
            "Cuit": 1
        },
        "FeCAEReq": {
            "FeCabReq": {
                "CantReg": 1,
                "PtoVta": 1,
                "CbteTipo": 1
            },
            "FeDetReq": {
                "FECAEDetRequest": [
                    {
                        "Concepto": 1,
                        "DocTipo": 1,
                        "DocNro": 1,
                        "CbteDesde": 1,
                        "CbteHasta": 1,
                        "CbteFch": "string",
                        "ImpTotal": 1.5,
                        "ImpTotConc": 1.5,
                        "ImpNeto": 1.5,
                        "ImpOpEx": 1.5,
                        "ImpTrib": 1.5,
                        "ImpIVA": 1.5,
                        "FchServDesde": "string",
                        "FchServHasta": "string",
                        "FchVtoPago": "string",
                        "MonId": "string",
                        "MonCotiz": 1.5,
                        "CanMisMonExt": "string",
                        "CondicionIVAReceptorId": 1,
                        "CbtesAsoc": {
                            "CbteAsoc": [
                                {
                                    "Tipo": 1,
                                    "PtoVta": 1,
                                    "Nro": 1,
                                    "Cuit": "string",
                                    "CbteFch": "string"
                                }
                            ]
                        },
                        "Tributos": {
                            "Tributo": [
                                {
                                    "Id": 1,
                                    "Desc": "string",
                                    "BaseImp": 1.5,
                                    "Alic": 1.5,
                                    "Importe": 1.5
                                }
                            ]
                        },
                        "Iva": {
                            "AlicIva": [
                                {
                                    "Id": 1,
                                    "BaseImp": 1.5,
                                    "Importe": 1.5
                                }
                            ]
                        },
                        "Opcionales": {
                            "Opcional": [
                                {
                                    "Id": "string",
                                    "Valor": "string"
                                }
                            ]
                        },
                        "Compradores": {
                            "Comprador": [
                                {
                                    "DocTipo": 1,
                                    "DocNro": 1,
                                    "Porcentaje": 1.5
                                }
                            ]
                        },
                        "PeriodoAsoc": {
                            "FchDesde": "string",
                            "FchHasta": "string"
                        },
                        "Actividades": {
                            "Actividad": [
                                {
                                    "Id": 1
                                }
                            ]
                        }
                    }
                ]
            }
        }
    }
});

// Reemplazar con tu access_token obtenido de https://app.afipsdk.com
var accessToken = "TU_TOKEN_AQUI";
headersWS['Authorization'] = "Bearer " + accessToken; 

// Realizamos la llamada a la API
requestWS.headers.addAll(headersWS);
http.StreamedResponse responseWS = await requestWS.send();

// En caso de error lo mostramos por consola
if (responseWS.statusCode != 200) {
    print(await responseWS.stream.bytesToString());

    throw new Error();
}

// Convertimos la respuesta en un objeto
var response = json.decode(await responseWS.stream.bytesToString());

// Mostramos la respuesta por consola
print(response);
Respuesta
{
    "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"
                }
            ]
        }
    }
}