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 EasyVerifactu: 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. El valor del integration_id aparece en la URL de los ajustes de esa integración. La lista completa de códigos está en Errors.