Catálogos MH
El API Connect usa dos tipos de catálogos de referencia:
- Vivos — expuestos como endpoints, consultables en tiempo real. Úsalos cuando necesites el listado completo o un subconjunto filtrado.
- Estáticos — valores enumerados fijos que no cambian. Los envías directo como literales en tus requests.
Catálogos vivos (endpoints)
Actividades económicas
Lista del catálogo CAT-019 del MH — requerido para activity_code en el cliente de CCF y para el activity_code del emisor.
| Método | GET |
| URL | https://ocote.io/api/connect/catalogs/activities |
| Query params | search (opcional) — filtra por código o descripción. |
| Autenticación | Header Authorization: Bearer odt_... |
Ejemplo:
curl "https://ocote.io/api/connect/catalogs/activities?search=software" \
-H "Authorization: Bearer odt_xxx"
[
{ "code": "62010", "description": "Programación informática" },
{ "code": "62020", "description": "Consultoría de informática" },
{ "code": "62090", "description": "Otras actividades de tecnologías de la información y servicios informáticos" }
]
El endpoint devuelve máximo 50 resultados por llamada. Si no envías search, devuelve las primeras 50.
Departamentos y municipios
Lista de CAT-012 (departamentos) y CAT-013 (municipios) agrupados.
| Método | GET |
| URL | https://ocote.io/api/connect/catalogs/departments |
| Autenticación | Header Authorization: Bearer odt_... |
curl https://ocote.io/api/connect/catalogs/departments \
-H "Authorization: Bearer odt_xxx"
Respuesta (abreviada):
[
{
"code": "06",
"name": "San Salvador",
"municipalities": [
{ "code": "0601", "name": "Aguilares" },
{ "code": "0614", "name": "San Salvador Centro" },
{ "code": "0615", "name": "San Salvador Este" }
]
},
{
"code": "09",
"name": "Santa Ana",
"municipalities": [
{ "code": "0901", "name": "Coatepeque" },
{ "code": "0909", "name": "Santa Ana Centro" }
]
}
]
En el payload de cliente o sujeto excluido se envían separados como department + municipality:
department= los primeros 2 dígitos del código (p.ej."06"para San Salvador).municipality= los últimos 2 dígitos del código de municipio (p.ej. para San Salvador Centro"0614"→ envías"14").
Correcto: "department": "06", "municipality": "14"
Incorrecto: "department": "06", "municipality": "0614"
Unidades de medida
Lista del catálogo CAT-014 del MH.
| Método | GET |
| URL | https://ocote.io/api/connect/catalogs/units |
| Autenticación | Header Authorization: Bearer odt_... |
curl https://ocote.io/api/connect/catalogs/units \
-H "Authorization: Bearer odt_xxx"
Las unidades son informativas. El API Connect usa 99 (Otra) por defecto para todas las líneas emitidas, ya que los wildcard items no requieren unidad específica. El listado está expuesto por completitud.
Catálogos estáticos
Tipos de contribuyente
Usado en customer.type_contributor en los requests de Factura, CCF y Exportación.
| Valor | Tipo |
|---|---|
1 | Pequeño Contribuyente |
2 | Mediano Contribuyente |
3 | Gran Contribuyente — aplica retención IVA 1% automática si base ≥ $100 |
4 | Gobierno — aplica retención IVA 1% automática si base ≥ $100 |
Ver Wildcard items > Retención IVA.
Tipos de documento identificador (receptor/sujeto)
Usado en customer.document_type y subject.document_type.
| Código | Documento |
|---|---|
"02" | Carnet de Residente |
"03" | Pasaporte |
"13" | DUI (Documento Único de Identidad) — default |
"36" | NIT — default para clientes con nit |
"37" | Otro |
SUEX acepta solamente estos 5 valores (el API valida explícitamente). Factura/CCF/Exportación permite estos y otros códigos MH, pero la mayoría de integraciones usan 13 (personas naturales) o 36 (empresas).