Introducción: El reto de facturar ante el SRI en PHP y Laravel
La facturación electrónica en Ecuador exige cumplir con normativas rigurosas dictadas por el Servicio de Rentas Internas (SRI). Todo desarrollador que intenta implementar el flujo tradicional desde cero se enfrenta a una cascada de obstáculos técnicos: generar un XML estricto bajo el esquema XSD v1.1.0, firmar digitalmente en formato XAdES-BES con un certificado PKCS#12 (.p12), calcular una clave de acceso de 49 dígitos con el algoritmo Módulo 11, conectarse a los lentos web services SOAP del SRI y, finalmente, generar la representación impresa RIDE en formato PDF.
Con la API REST de Invoka, todo este flujo complejo se simplifica en una sola petición HTTP POST en formato JSON. Invoka se encarga de la generación del XML, el firmado criptográfico, la autorización en milisegundos y la devolución del RIDE PDF listo para tu cliente.
Estructura del Payload JSON para Emitir una Factura
Para emitir una factura electrónica estándar autorizada ante el SRI, solo debes enviar los datos comerciales y de tu cliente en una llamada REST protegida con tu cabecera X-API-KEY:
{
"ambiente": 1,
"tipo_comprobante": "01",
"emisor": {
"ruc": "1792345678001",
"razon_social": "MI EMPRESA DE TECNOLOGIA CIA. LTDA.",
"nombre_comercial": "INVOKA TECH",
"dir_matriz": "Av. República de El Salvador N34-123 y Moscú, Quito",
"contribuyente_especial": "000",
"obligado_contabilidad": "SI"
},
"info_factura": {
"fecha_emision": "18/09/2026",
"dir_establecimiento": "Quito",
"tipo_identificacion_comprador": "05",
"razon_social_comprador": "JUAN PEREZ",
"identificacion_comprador": "1712345678",
"direccion_comprador": "Quito Norte",
"total_sin_impuestos": 100.00,
"total_descuento": 0.00,
"total_con_impuestos": [
{
"codigo": "2",
"codigo_porcentaje": "4",
"base_imponible": 100.00,
"tarifa": 15.00,
"valor": 15.00
}
],
"importe_total": 115.00,
"moneda": "DOLAR"
},
"detalles": [
{
"codigo_principal": "SERV-001",
"descripcion": "Desarrollo de Software y APIs Cloud",
"cantidad": 1,
"precio_unitario": 100.00,
"descuento": 0.00,
"precio_total_sin_impuesto": 100.00,
"impuestos": [
{
"codigo": "2",
"codigo_porcentaje": "4",
"tarifa": 15.00,
"base_imponible": 100.00,
"valor": 15.00
}
]
}
]
}
Implementación en Laravel con HTTP Client
En tu controlador o servicio de Laravel, utiliza la clase nativa Http para realizar la emisión en apenas 3 líneas:
use Illuminate\Support\Facades\Http;
public function emitirFactura(array $datosFactura)
{
$response = Http::withHeaders([
'X-API-KEY' => config('services.invoka.api_key'),
'Accept' => 'application/json',
'Content-Type' => 'application/json',
])->post('https://invoka.com.ec/api/factura/emision', $datosFactura);
if ($response->successful()) {
$data = $response->json();
// $data['clave_acceso']
// $data['estado'] => "AUTORIZADO"
// $data['pdf_url'] => Enlace al RIDE PDF
// $data['xml_url'] => Enlace al XML oficial firmado
return $data;
}
throw new \Exception("Error SRI: " . $response->body());
}
Manejo de Respuestas y RIDE PDF
Una vez procesada la factura, la API de Invoka te devuelve el estado oficial del SRI, la clave de acceso generada con el algoritmo módulo 11 y los enlaces seguros de descarga para el XML firmado y el RIDE en formato PDF con el código de barras y QR oficial.
¿Listo para probar en vivo?
Regístrate gratis en Invoka y obtén 10 comprobantes de bienvenida en producción y pruebas ilimitadas en el Sandbox sin costo.
Crear cuenta gratis y probar API