El reto de facturar en una tienda online
- Cada pedido necesita su comprobante, y hacerlo a mano deja de ser viable cuando las ventas crecen.
- Las devoluciones obligan a emitir notas de crédito que deben cuadrar con la factura original.
- Muchos clientes piden su factura después de pagar, por correo o por chat.
- Cada pedido se factura en automático al confirmar el pago.
- La nota de crédito se emite referenciando la factura original.
- El comprobante llega al correo de tu cliente, sin que lo pida.
Tres pasos, de tu tienda al SRI
- PASO 01
Conecta tu tienda
Genera tu API key y úsala desde el backend de tu plataforma.
sk_test_••••••••4f2a - PASO 02
Emite al confirmar el pago
Envía los datos del pedido y Flashpi arma, firma y envía el comprobante al SRI.
POST /v1/facturas - PASO 03
Entrega el comprobante
Recibe la autorización y envía el documento al correo de tu cliente.
RIDE.pdf + factura.xml
Factura de un pedido online
Una sola solicitud a la API. Flashpi construye el XML, lo firma con tu certificado y lo envía al SRI.
- Sin armar XML ni SOAP
- Firma con tu certificado .p12
- Estado y clave de acceso en la respuesta
curl -X POST https://api.flashpi.ec/v1/facturas \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"comprador": {
"tipo_identificacion": "cedula",
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo",
"email": "[email protected]"
},
"detalles": [
{
"descripcion": "Camiseta talla M",
"cantidad": 2,
"precio_unitario": 12.5
},
{
"descripcion": "Envío a domicilio",
"cantidad": 1,
"precio_unitario": 3.0
}
]
}' const res = await fetch("https://api.flashpi.ec/v1/facturas", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FLASHPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"comprador": {
"tipo_identificacion": "cedula",
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo",
"email": "[email protected]"
},
"detalles": [
{
"descripcion": "Camiseta talla M",
"cantidad": 2,
"precio_unitario": 12.5
},
{
"descripcion": "Envío a domicilio",
"cantidad": 1,
"precio_unitario": 3.0
}
]
}),
});
const comprobante = await res.json(); import os
import requests
res = requests.post(
"https://api.flashpi.ec/v1/facturas",
headers={"Authorization": f"Bearer {os.environ['FLASHPI_API_KEY']}"},
json={
"comprador": {
"tipo_identificacion": "cedula",
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo",
"email": "[email protected]"
},
"detalles": [
{
"descripcion": "Camiseta talla M",
"cantidad": 2,
"precio_unitario": 12.5
},
{
"descripcion": "Envío a domicilio",
"cantidad": 1,
"precio_unitario": 3.0
}
]
},
)
comprobante = res.json() <?php
$payload = <<<'JSON'
{
"comprador": {
"tipo_identificacion": "cedula",
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo",
"email": "[email protected]"
},
"detalles": [
{
"descripcion": "Camiseta talla M",
"cantidad": 2,
"precio_unitario": 12.5
},
{
"descripcion": "Envío a domicilio",
"cantidad": 1,
"precio_unitario": 3.0
}
]
}
JSON;
$ch = curl_init('https://api.flashpi.ec/v1/facturas');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('FLASHPI_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);
$comprobante = json_decode(curl_exec($ch), true); {
"estado": "AUTORIZADO",
"clave_acceso": "(49 dígitos)",
"numero_autorizacion": "(nº del SRI)",
"fecha_autorizacion": "(fecha y hora)"
} Comprobantes que más usarás
Una API REST que habla con cualquier backend
Flashpi funciona con cualquier lenguaje o framework que pueda enviar solicitudes HTTP. Tenemos ejemplos por lenguaje para Java, Node, Python, Ruby, PHP, Go y C#.
Lo que preguntan las tiendas online
¿Tienes otra pregunta sobre cómo facturar tus ventas online?
Escríbenos¿Cuándo conviene emitir la factura: al pagar o al despachar?
Con la API puedes emitirla en cualquiera de los dos momentos: el comprobante se genera cuando tu sistema envía la solicitud. Confirma con tu contador cuál aplica a tu caso.
¿Cómo se maneja una devolución?
Emitiendo una nota de crédito que referencia la factura original. Mira la guía Cómo emitir y anular notas de crédito por API.
¿Puedo facturar a consumidor final?
El SRI contempla la facturación a consumidor final bajo ciertas condiciones. Revisa las condiciones vigentes antes de configurarlo en tu tienda.
¿Funciona con mi plataforma?
Flashpi es una API REST, así que se integra con cualquier plataforma que pueda enviar solicitudes HTTP desde su backend. Mira los ejemplos por lenguaje.