- TypeScript 99.4%
- JavaScript 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
`doc.md` es un archivo de contexto que vive sólo en la copia de trabajo, no en el repositorio. Se añade al .gitignore para que no se cuele en un push, además de la exclusión explícita en el flujo de robocopy. No afecta al paquete: npm nunca incluye .gitignore en el tarball. |
||
| .agents | ||
| .vscode | ||
| credentials | ||
| icons | ||
| nodes/Catamex | ||
| .gitignore | ||
| .prettierrc.js | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| eslint.config.mjs | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
n8n-nodes-catamex
Nodo de n8n para consultar los catálogos del SAT y los códigos postales de SEPOMEX desde tus workflows.
Instalación · Operaciones · Credenciales · Compatibilidad · Desarrollo
Instalación
cd ~/.n8n && npm install n8n-nodes-catamex
Desde la interfaz: Settings → Community nodes → Install e introduce n8n-nodes-catamex. Si despliegas con contenedores puedes fijarlo con N8N_COMMUNITY_PACKAGES=n8n-nodes-catamex.
Operaciones
SAT Catalog
| Operación | Qué hace | Endpoint |
|---|---|---|
| Search | Busca por clave o descripción en el catálogo elegido | GET /api/v1/search |
| Get Many | Lista un catálogo página por página | GET /api/v1/catalogs/{slug} |
El desplegable trae los dos de siempre:
| Opción | Slug |
|---|---|
| Product and Service Code | c_claveprodserv |
| Postal Code | cp_sepomex |
La API expone bastantes más: unidades, impuestos, regímenes fiscales, usos del CFDI, formas de pago… Para cualquiera de ellos elige Custom y escribe su slug en Custom Catalog Slug, por ejemplo c_claveunidad o c_impuesto. Los slugs disponibles los lista /api/v1/catalogs.
Search pide al menos 2 caracteres; para códigos postales, los 5 dígitos.
Postal Code
| Operación | Qué devuelve |
|---|---|
| Get Neighborhoods | Un item por colonia del CP |
| Validate | Un item con postalCode, valid y neighborhoodCount |
Validate va directo a un IF:
Catamex (Validate) → IF $json.valid → ...
SEPOMEX hace búsqueda parcial, así que el nodo filtra por coincidencia exacta de d_codigo antes de devolver nada.
Salida de Get Neighborhoods:
{
"neighborhood": "Aguascalientes Centro",
"type": "Colonia",
"municipality": "Aguascalientes",
"state": "Aguascalientes",
"zone": "Urbano",
"postalCode": "20000"
}
Account
| Operación | Qué devuelve |
|---|---|
| Get | Usuario, token y cuota mensual restante |
Útil para vigilar el consumo del plan desde un workflow con Schedule Trigger.
Credenciales
Necesitas un token de catamex.cc:
- Crea una cuenta
- Genera un token en tu panel
- En n8n crea una credencial Catamex API y pégalo
Viaja como Authorization: Bearer en cada petición y n8n lo inyecta desde la credencial cifrada, así que no acaba en el workflow. La prueba de credencial pega contra /api/v1/me: si el token está mal o caducó, te enteras al guardar.
Compatibilidad
- n8n 1.60.0 o superior
- Node.js 20.19+ / 22.12+
Desarrollo
npm install
npm run build # TypeScript -> dist/
npm run lint # linter de n8n
npm run dev # n8n con el nodo cargado
npm run dev levanta n8n en un contenedor, así que necesita Docker o Podman. Con tu propia instancia:
N8N_DEV_RELOAD=true n8n start # en la instancia
npm run dev -- --external-n8n # aquí
Publicar
El prepublishOnly del scaffold espera a release-it, que además crea su release en GitHub y aquí no aplica. El flujo real:
npm run build
npm run lint
npm publish --ignore-scripts
La versión queda en staging y hay que aprobarla con 2FA (npm stage approve <id> o el botón en npmjs.com) antes de que salga al registro.
Recursos
Hecho por Catamex