SageStoreFromHubfiscal
Descripción
Sección titulada «Descripción»Lee la salida de HubfiscalStoreBillpt (o cualquier nodo Hub Fiscal) y escribe el documento fiscal directamente en las tablas de staging de Sage X3 MSSQL, siguiendo la estructura de 3 líneas de EQZ_MigracionEcomm_Sage.
Caracteristicas principales:
- Mapeo automático por pais: Deriva planta, tipo de asiento, prefijo de documento y cuentas contables a partir del código ISO del pais (PT / ES / FR / IT). Todos los valores pueden sobreescribirse via configuración.
- 3 líneas contables: Inserta una línea de deudores (430xxx), una línea de ventas (700xxx) y una línea de IVA (477xxx) por documento.
- 3 filas analiticas: Inserta una fila YFACTERAN por línea contable con CCE_0=pais, CCE_1=canal, CCE_2=delegación, CCE_3=tercero.
- Soporte nota de crédito: Invierte los signos para documentos
NC(deudores −1 / ventas +1 / IVA +1). - Transacción atomica: Las tres tablas se confirman juntas — hace rollback completo en caso de error.
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Si | Credencial Sage X3 MSSQL (proveedor sageCreateDocument) |
| sage_schema | select | No | Schema Sage: LIVE (producción) o DEV. Default: LIVE |
| country_iso | text | No | Fuerza el pais ISO. Por defecto usa country_iso de la salida del Hub Fiscal |
| planta | text | No | Código de planta Sage. Auto: PT→22_PT, ES→21_ES, FR→23_FR, IT→24_IT |
| tipasiiento | text | No | Tipo de asiento (TIPASIIENTO_0). Auto: PT/FT→TPE03, PT/NC→AEC02, ES/FT→TPE01, ES/NC→AEC01, FR/FT→TPE05, IT/FT→TPE06 |
| doc_prefix | text | No | Prefijo del documento en TERCERO_0 de cabecera (ej: FPT, FES, FFR). Auto por pais+tipo |
| tercero_deb | text | No | Código tercero de la línea deudores. Auto: PT→CT-000028, ES→CT-000008, FR→CT-000040 |
| vat_code | text | No | Código VAT Sage. Auto: PT→PT023, ES→SP001, FR→FR020, IT→IT022 |
| canal | text | No | Canal de venta para analitica CCE_1. Default: E-COMMERCE |
| delegación | text | No | Código delegación para analitica CCE_2. Default: 06 |
| descripción | text | No | Descripción del asiento. Default: Ventas Ecomm DD/MM/YYYY con la fecha del documento |
| sage_user | text | No | Usuario Sage para CREUSR_0 y UPDUSR_0. Default: ADMIN |
Mapeo Automático por Pais
Sección titulada «Mapeo Automático por Pais»| Pais | Planta | Tipo FT | Tipo NC | Prefijo FT | Cuenta deudores | Código VAT |
|---|---|---|---|---|---|---|
| PT | 22_PT | TPE03 | AEC02 | FPT | 430150 / CT-000028 | PT023 |
| ES | 21_ES | TPE01 | AEC01 | FES | 430000 / CT-000008 | SP001 |
| FR | 23_FR | TPE05 | AEC05 | FFR | 430100 / CT-000040 | FR020 |
| IT | 24_IT | TPE06 | AEC06 | FIT | 310000 | IT022 |
Estructura Contable
Sección titulada «Estructura Contable»Cada documento genera 3 líneas en YFACTERLIN:
| Línea | Tipo cuenta | Cuenta (PT) | Importe | Signo FT | Signo NC |
|---|---|---|---|---|---|
| 1 | Deudores | 430150 | total_gross | +1 | −1 |
| 2 | Ventas | 700050 | total_net | −1 | +1 |
| 3 | IVA | 477000 | total_tax | −1 | +1 |
Y 3 filas en YFACTERAN espejando cada línea con CCE_0=country_iso, CCE_1=canal, CCE_2=delegacion, CCE_3=tercero_deb.
Entrada
Sección titulada «Entrada»Entrada esperada: la salida de HubfiscalStoreBillpt:
{ "success": true, "hub_document_id": 12, "entity_id": "6684429451477", "order_number": "14522", "country_iso": "PT", "type": "FT", "status": "completed", "fiscal_provider": "billpt", "fiscal_doc_id": "1042", "fiscal_doc_number": "FT 2025/1042", "total_net": 63.56, "total_tax": 14.62, "total_gross": 78.18, "currency": "EUR", "issued_at": "2026-04-20"}{ "success": true, "idRegistro": 2047, "sage_schema": "LIVE", "planta": "22_PT", "tipasiiento": "TPE03", "doc_prefix": "FPT", "country_iso": "PT", "type": "FT", "total_gross": 78.18, "total_net": 63.56, "total_tax": 14.62, "fiscal_doc_number": "FT 2025/1042", "fecha": "2026-04-20", "message": "Documento Sage creado (ID: 2047) en LIVE.YFACTERCAB — FPT FT 2025/1042"}Flujo Tipico
Sección titulada «Flujo Tipico»Shopify Webhook → HubfiscalStoreShopify (pending) → HubfiscalStoreBillpt (completed) → SageStoreFromHubfiscal ← graba en Sage X3Tablas MSSQL
Sección titulada «Tablas MSSQL»| Tabla | Descripción |
|---|---|
YFACTERCAB | Cabecera del documento — TIPODOC=2, TIPASIIENTO, PLANTA, TERCERO (doc_prefix), fechas, referencia |
YFACTERLIN | Líneas contables — 3 líneas por documento (deudores, ventas, IVA) |
YFACTERAN | Filas analiticas — 3 filas con canal, delegación, pais, tercero |
- TIPODOC es siempre
2(estilo e-commerce), siguiendo el patron del procedimiento EQZ_MigracionEcomm_Sage. Difiere del procedimiento de migración TP que usa TIPODOC=1. - INVTYP es siempre
0y REGIVA esta siempre vacío, ya que Bill.pt gestiona el registro fiscal. IDREGISTRO_0se calcula comoMAX(IDREGISTRO_0) + 1dentro de la transacción — no se requiere objeto de secuencia.- Si
total_taxno esta presente en la salida del Hub Fiscal se infiere comototal_gross − total_net.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- HubfiscalStoreBillpt - Guarda resultado de Bill.pt en Hub Fiscal (alimenta este nodo)
- HubfiscalStoreShopify - Registrar el pedido Shopify antes de fiscalizar
- SageCreateDocument - Alternativa: crear documento Sage directamente desde datos Shopify
- HubfiscalStoreSage - Guardar resultado de SageCreateDocument en Hub Fiscal MySQL