Tiendas de comercio electrónico
Conecta tiendas, configura la facturación de pedidos y diagnostica pedidos y devoluciones mediante REST y MCP.
Autoriza primero la conexión del proveedor en Factuarea. integration_id identifica esa conexión existente; external_store_id es el identificador opaco de la tienda en el proveedor. La tienda pertenece a la empresa autenticada por tu API key.
Operaciones y scopes
| Operación | Scope necesario | Herramienta MCP |
|---|---|---|
GET /v1/stores | stores:read | list_stores |
POST /v1/stores | stores:write | connect_store |
GET /v1/stores/{store} | stores:read | get_store |
PUT /v1/stores/{store} | stores:write | update_store |
DELETE /v1/stores/{store} | stores:write | disconnect_store |
POST /v1/woocommerce/stores/{store}/connection-test | woocommerce_store:write | test_woocommerce_store_connection |
POST /v1/shopify/stores/{store}/connection-test | shopify_store:write | test_shopify_store_connection |
Estas herramientas solo admiten API key. Las operaciones REST que declaran Idempotency-Key la requieren; reutiliza la misma clave al reintentar la misma intención. En MCP, pasa idempotency_key cuando lo exija la herramienta. El listado acepta limit de 1 a 100 (25 por defecto), starting_after y ending_before; no combines ambos cursores.
curl -X POST https://api.factuarea.com/v1/stores \
-H "Authorization: Bearer $FACTUAREA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: connect-tienda-es-2026-09" \
--data '{
"integration_id": "0192e7b1-3c4d-7e2a-9f01-2b3c4d5e6f71",
"provider": "woocommerce",
"external_store_id": "wc-tienda-es",
"name": "Tienda ES",
"remote_base_url": "https://tienda.example.com",
"environment": "test",
"autoinvoicing_enabled": false,
"autosend_enabled": false
}'Revisa la configuración antes de activar
Las tiendas nuevas usan por defecto environment: test, autoinvoicing_enabled: false y autosend_enabled: false. prices_include_tax vale true, require_tax_id vale false y simplified_threshold es 400 EUR. La API admite un umbral de hasta 3000; elige el correspondiente a tu actividad. Cambiar una tienda a live no cambia el entorno de una credencial fact_test_.
Los pedidos pagados pueden producir facturas; las devoluciones pueden producir rectificativas vinculadas a la original. Se siguen comprobando la identificación, los impuestos, el estado del pedido y el umbral configurado. Los pedidos en otras divisas necesitan conversión a EUR y un tipo de cambio disponible. Los casos fiscales o de identidad no admitidos aparecen como motivos de descarte tipados, sin fabricar una factura.
Diagnostica el resultado
Las pruebas de conexión pueden devolver HTTP 200 con credential_accepted: false. Consulta reachable, failure_code, api_version y checked_at. Una tienda inexistente devuelve 404; el éxito de la petición HTTP no demuestra por sí solo que funcionen las credenciales remotas.
Usa la bandeja de integraciones para los pedidos descartados y reprocesa solo cuando is_replayable sea true, tras corregir la causa. Suscríbete a order.invoiced y order.refunded para recibir los snapshots en data.object; usa correlation_id para relacionar eventos. channel y source_store_id conservan el origen de la factura. Las notificaciones configuradas de Slack/Teams son un destino separado de tus webhooks públicos. Desconectar una tienda detiene su conexión; no borra sus facturas ni sus eventos históricos.