Saltar al contenido principal
El portal de clientes es una página alojada en EasyVerifactu desde la que cualquier cliente puede ver y descargar sus facturas. Tú generas el enlace mediante la API y se lo envías; el cliente accede directamente, sin credenciales ni contraseñas. Toda la integración se reduce a una llamada. El contrato completo del endpoint, con los parámetros y todas las respuestas posibles, está en la API Reference.

Cómo funciona

El flujo tiene tres pasos:
  1. Tu servidor llama a POST /v1/customer_portal/sessions con el identificador externo del cliente.
  2. La API devuelve una URL firmada con una validez de una hora.
  3. Envías esa URL a tu cliente. Al abrirla, ve la lista de sus facturas y puede descargar cada una en PDF.
El cliente nunca ve tu clave API ni tiene acceso a los datos de otros clientes. El enlace es nominativo y caduca automáticamente.

Crear una sesión

Llama al endpoint con tu clave API y el identificador externo del cliente. El external_customer_id es el mismo que usas en tu integración (el identificador del cliente en Shopify, Stripe, tu base de datos, etc.).
curl https://api.easyverifactu.com/v1/customer_portal/sessions \
  -X POST \
  -H "Authorization: Bearer ev_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "external_customer_id": "cus_9aZ" }'
La clave se envía como bearer token y está limitada a un único entorno: una clave de test solo ve clientes de test y una clave de producción solo ve clientes de producción. Consulta Authentication para los detalles. La respuesta incluye la URL del portal y la fecha de caducidad:
{
  "url": "https://app.easyverifactu.com/portal/eyJ…",
  "expires_at": "2026-06-01T10:30:00Z"
}
Envía la url a tu cliente por el canal que uses habitualmente: email de confirmación, área de cliente, notificación push, etc. Si el external_customer_id no corresponde a ningún cliente, la API responde con 404 y el código customer_not_found. Si el mismo identificador apunta a más de un cliente (porque dos integraciones lo reutilizan), responde con 409 y customer_ambiguous. La lista completa de códigos está en Errors.

Qué ve el cliente

Al abrir el enlace, el cliente ve una tabla con todas sus facturas: número, fecha, estado e importe. Desde ahí puede descargar cada factura en PDF con un solo clic. Si el enlace ha caducado o no es válido, la página le indica que solicite uno nuevo.

Caducidad y seguridad

Cada sesión caduca una hora después de generarse. Pasado ese tiempo el enlace deja de funcionar. Si el cliente lo necesita de nuevo, genera una nueva sesión. El enlace es un token firmado criptográficamente. EasyVerifactu verifica la firma y la caducidad en cada visita. Un token alterado o expirado es rechazado sin revelar cuál de las dos comprobaciones ha fallado. Genera siempre el enlace bajo demanda desde tu servidor, nunca lo almacenes como URL permanente.