El reto de facturar en una empresa de transporte o un parqueadero
- Transporte: cada traslado de mercadería necesita su guía de remisión, y la factura del servicio debe cuadrar con ella.
- Transporte: los datos del transportista, la placa y los puntos de partida y llegada deben ir completos y correctos.
- Parqueaderos: muchos comprobantes pequeños y rápidos, con el conductor esperando para salir.
- Parqueaderos: el cobro varía por tiempo y hay que emitir al salir.
- Transporte: la guía se emite desde tu sistema al despachar, y la factura del flete con la misma API.
- Transporte: tu sistema envía transportista, placa, partida y llegada en cada solicitud.
- Parqueaderos: el comprobante se emite desde tu sistema de cobro, sin pasos manuales.
- Parqueaderos: la API recibe el total que calcula tu sistema según el tiempo.
Cómo lo resuelve Flashpi
- PASO 01
Conecta tu sistema
Usa tu API key desde tu software de transporte o tu sistema de cobro.
sk_test_••••••••4f2a - PASO 02
Emite el comprobante
Envía la guía de remisión al despachar, o la factura al cobrar.
POST /v1/guias-de-remision - PASO 03
Consulta y archiva
Recupera el XML y la autorización de cualquier documento por su clave de acceso.
XML + autorización
Ejemplo: guía de remisión de un traslado
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/guias-de-remision \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"remitente": {
"identificacion": "1790000000001",
"razon_social": "Empresa de ejemplo"
},
"destinatario": {
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo"
},
"transportista": {
"identificacion": "0911223344",
"razon_social": "Transportista de ejemplo",
"placa": "ABC-1234"
},
"traslado": {
"motivo": "venta",
"punto_partida": "Quito",
"punto_llegada": "Guayaquil",
"fecha_inicio": "2026-11-02"
},
"detalles": [
{
"descripcion": "Caja de mercadería",
"cantidad": 10
}
]
}' const res = await fetch("https://api.flashpi.ec/v1/guias-de-remision", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FLASHPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"remitente": {
"identificacion": "1790000000001",
"razon_social": "Empresa de ejemplo"
},
"destinatario": {
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo"
},
"transportista": {
"identificacion": "0911223344",
"razon_social": "Transportista de ejemplo",
"placa": "ABC-1234"
},
"traslado": {
"motivo": "venta",
"punto_partida": "Quito",
"punto_llegada": "Guayaquil",
"fecha_inicio": "2026-11-02"
},
"detalles": [
{
"descripcion": "Caja de mercadería",
"cantidad": 10
}
]
}),
});
const comprobante = await res.json(); import os
import requests
res = requests.post(
"https://api.flashpi.ec/v1/guias-de-remision",
headers={"Authorization": f"Bearer {os.environ['FLASHPI_API_KEY']}"},
json={
"remitente": {
"identificacion": "1790000000001",
"razon_social": "Empresa de ejemplo"
},
"destinatario": {
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo"
},
"transportista": {
"identificacion": "0911223344",
"razon_social": "Transportista de ejemplo",
"placa": "ABC-1234"
},
"traslado": {
"motivo": "venta",
"punto_partida": "Quito",
"punto_llegada": "Guayaquil",
"fecha_inicio": "2026-11-02"
},
"detalles": [
{
"descripcion": "Caja de mercadería",
"cantidad": 10
}
]
},
)
comprobante = res.json() <?php
$payload = <<<'JSON'
{
"remitente": {
"identificacion": "1790000000001",
"razon_social": "Empresa de ejemplo"
},
"destinatario": {
"identificacion": "0102030405",
"razon_social": "Cliente de ejemplo"
},
"transportista": {
"identificacion": "0911223344",
"razon_social": "Transportista de ejemplo",
"placa": "ABC-1234"
},
"traslado": {
"motivo": "venta",
"punto_partida": "Quito",
"punto_llegada": "Guayaquil",
"fecha_inicio": "2026-11-02"
},
"detalles": [
{
"descripcion": "Caja de mercadería",
"cantidad": 10
}
]
}
JSON;
$ch = curl_init('https://api.flashpi.ec/v1/guias-de-remision');
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
- Guías de remisión Para sustentar el traslado de mercadería. API de guías de remisión electrónicas
- Facturas electrónicas El comprobante principal de venta.
- Notas de crédito y débito Para devoluciones, descuentos posteriores y correcciones.
- Consulta de XML y autorización Para recuperar cualquier comprobante por su clave de acceso.
Compatible con tu software
Flashpi es una API REST: funciona con cualquier lenguaje o framework que pueda enviar solicitudes HTTP. Tenemos ejemplos por lenguaje para Java, Node, Python, Ruby, PHP, Go y C#.
Preguntas frecuentes
¿Tienes otra pregunta sobre guías de remisión o facturas?
Escríbenos¿Cuándo se emite la guía de remisión?
Antes de iniciar el traslado de la mercadería, según lo que exige el SRI. Confirma los casos y plazos vigentes.
¿Puedo facturar el flete en el mismo flujo?
Sí: emites la guía al despachar y la factura del servicio con la misma API.
¿Cómo se factura un parqueadero con cobro por minuto?
Se emite una factura al salir, con el valor calculado por tu sistema de cobro. La API recibe el total y los datos del comprador.
¿Funciona con mi software de transporte?
Si tu software puede enviar solicitudes HTTP, o su proveedor puede integrarlo, sí. Revisa la integración para TMS.