¿Qué es LFPIORPI y qué pinta tiene en el código?
La Ley Federal para la Prevención e Identificación de Operaciones con Recursos de Procedencia Ilícita (LFPIORPI) regula las llamadas actividades vulnerables— operaciones que por su riesgo de lavado de dinero deben identificar al cliente y, si superan ciertos umbrales, enviar un aviso a la UIF. Hay alrededor de 16 fracciones en el Art. 17; cada una tiene su propio formato, sus catálogos y su XSD publicados por SAT/UIF.
La que primero subimos a la API es la fracción V — Desarrollos Inmobiliarios (DIN), en su versión del template oficial 4.9. Las demás actividades entrarán conforme las auditamos contra la ley publicada y sus instructivos.
¿Por qué los catálogos importan?
Cuando armas el aviso XML que se entrega a la UIF, casi cada campo que no sea un nombre o un monto vive en un catálogo: el país del cliente, la entidad federativa del inmueble, el instrumento monetario de la aportación, la moneda, el tipo de desarrollo, el tipo de alerta. El XSD del SAT rechaza el XML si usas un valor que no exista en el catálogo correspondiente.
Llevar esos catálogos en una hoja de Excel local funciona… hasta que SAT publica una versión nueva y tu código se queda con valores viejos. La idea de AmigoApi es: un endpoint REST por catálogo, autenticado con tu API key, siempre alineado con la última versión oficial.
Los 14 catálogos disponibles
Estructura híbrida: 11 catálogos compartidosque se reutilizan a través de todas las actividades LFPIORPI, y 3 específicos del formato Desarrollos Inmobiliarios 4.9.
Compartidos (11)
paises— 249 países ISO 3166-1 alfa-2 + nombre en español.entidades-federativas— las 32 entidades federativas mexicanas con clave SAT.codigos-postales— 138,283 códigos postales nacionales con estado, municipio y colonia.actividades-economicas-pfygiros-mercantiles-pm— 167 + 136 códigos para clasificar personas físicas y morales.instrumentos-monetarios,instituciones-financieras,monedas,tipos-credito— las claves que aparecen en cualquier aviso con monto.prioridades(normal vs 24 horas) ysi-no(booleano en formato SAT).
Específicos de Desarrollos Inmobiliarios 4.9 (3)
tipos-alerta— 15 códigos para clasificar la alerta adjunta al aviso (3901-3913 + 9999 “Otra alerta”).tipos-desarrollo— habitacional, comercial, oficinas, industrial, mixto, otro.tipos-tercero— proveedor, cliente en preventa, otro.
Cómo se consume
Todos los endpoints son GET, devuelven JSON, y requieren tu API key:
# Listar todos los catálogos compartidos
curl -H "Authorization: Bearer $AMIGOAPI_KEY" \
https://api.amigoapi.com/lfpiorpi/catalogs
# Obtener uno
curl -H "Authorization: Bearer $AMIGOAPI_KEY" \
https://api.amigoapi.com/lfpiorpi/catalogs/paises
# Catálogos específicos de DIN — con versión XSD
curl -H "Authorization: Bearer $AMIGOAPI_KEY" \
"https://api.amigoapi.com/lfpiorpi/din/catalogs/tipos-alerta?xsd_version=4.9"Respuesta típica: { name, total, limit, offset, items } con paginación por limit y offset. Para catálogos DIN-específicos viene también el campo xsd_versionpara que tu código sepa contra qué versión del formato está validando.
Búsqueda rápida por código postal
El catálogo codigos-postalesestá indexado para la consulta más común: dame todas las colonias de un CP. En vez de paginar 138k filas, hay un endpoint dedicado:
# Resolver un CP a colonias + estado + municipio
curl -H "Authorization: Bearer $AMIGOAPI_KEY" \
"https://api.amigoapi.com/lfpiorpi/codigos-postales?cp=05129"
# Solo las colonias (mismo array que usa el INDIRECT del Excel SAT)
curl -H "Authorization: Bearer $AMIGOAPI_KEY" \
"https://api.amigoapi.com/lfpiorpi/codigos-postales/colonias?cp=05129"Respuesta del primero: { cp, found, estado, municipio, items: [{cp, estado, municipio, colonia}] }. Ideal para autocompletar formularios de identificación del cliente.
Versionado contra el XSD oficial
Los catálogos DIN-específicos están versionados contra el XSD que publica SAT/UIF en el portal SPPLD. Cuando SAT publique una versión nueva del formato (p. ej. 5.0), el endpoint expone ambos en paralelo con el query param ?xsd_version=, y tú decides cuándo migrar — nada se pierde en el cambio porque las filas tienen un campo scopesque dice qué versiones aceptan cada valor.
Dónde explorar
La página interactiva en amigoapi.com/lfpiorpi/catalogos tiene la lista completa de los 14 catálogos, ejemplos curl listos para copiar, y muestras de las respuestas JSON.
Si tu aviso involucra umbrales en UMA, también te puede servir la calculadora UMA— mete una fecha y sale el umbral DIN convertido a pesos.