Cómo funciona
El flujo tiene tres pasos:- Tu servidor llama a
POST /v1/customer_portal/sessionscon el identificador externo del cliente. - La API devuelve una URL firmada con una validez de una hora.
- Envías esa URL a tu cliente. Al abrirla, ve la lista de sus facturas y puede descargar cada una en PDF.
Antes de empezar
La llamada a la API se autentica con una clave API. Si aún no tienes una, créala antes de continuar:- Ve a Configuración > Claves API.
- Pulsa Nueva clave y dale un nombre descriptivo.
- Copia la clave en el momento. Solo se muestra una vez.
ev_test_…) solo ve clientes de test y una clave de producción (ev_live_…) solo ve clientes reales. Genera el enlace siempre desde tu servidor y guarda la clave como un secreto, nunca en código del lado del cliente. El proceso completo está en Claves API.
Crear una sesión
Llama al endpoint con tu clave API y el identificador externo del cliente. Elexternal_customer_id es el mismo que usas en tu integración (el identificador del cliente en Shopify, Stripe, tu base de datos, etc.).
url a tu cliente por el canal que uses habitualmente: email de confirmación, área de cliente, notificación push, etc.
La sesión se crea para cualquier external_customer_id, aunque ese cliente todavía no tenga facturas registradas en Finseed: el portal las consulta en el momento. Si no hay ninguna, muestra una lista vacía.
Cuándo añadir integration_id
Si tu entorno tiene más de una integración, añade el campo integration_id para indicar a qué integración pertenece el cliente:
external_customer_id puede referirse a clientes distintos en integraciones distintas: los identificadores solo son únicos dentro de cada integración (por ejemplo, el cliente 42 de tu tienda WooCommerce y el cliente 42 de tu tienda Shopify son personas diferentes). Con una sola integración puedes omitirlo.
Si tu entorno tiene varias integraciones y no envías integration_id, la API responde con 409 customer_ambiguous. Copia el valor desde Configuración > Integraciones: abre la integración y pulsa el icono de copiar junto a su ID. La lista completa de códigos está en Errors.
Idioma del portal
Para indicar el idioma del cliente, añade el campolocale al crear la sesión:
es y en, o una variante regional como es-ES o en_US: el portal usa el idioma principal de esa variante. Si omites el campo, o envías un idioma no reconocido, el portal usa el idioma del navegador del cliente y, si tampoco lo reconoce, español. Si envías un valor que no es texto (un número, por ejemplo), la petición completa falla con 400 invalid_request.
El campo locale solo cambia el idioma de la página del portal. La factura en PDF se descarga en el idioma con el que se emitió: consulta Personalización de facturas.
El cliente puede cambiar el idioma en cualquier momento con el selector que aparece en la parte superior del portal.