Saltar al contenido principal

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étodoGET
URLhttps://ocote.io/api/connect/catalogs/activities
Query paramssearch (opcional) — filtra por código o descripción.
AutenticaciónHeader 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étodoGET
URLhttps://ocote.io/api/connect/catalogs/departments
AutenticaciónHeader 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" }
]
}
]
Cómo usar estos códigos en los requests

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étodoGET
URLhttps://ocote.io/api/connect/catalogs/units
AutenticaciónHeader 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.

ValorTipo
1Pequeño Contribuyente
2Mediano Contribuyente
3Gran Contribuyente — aplica retención IVA 1% automática si base ≥ $100
4Gobierno — 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ódigoDocumento
"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).

Formas de pago

Usado en payment_method. Catálogo CAT-017 del MH.

CódigoForma de pago
"01"Billetes y monedas (Efectivo) — default
"02"Tarjeta Débito
"03"Tarjeta Crédito
"04"Cheque
"05"Transferencia / Depósito Bancario
"08"Dinero electrónico
"09"Monedero electrónico
"10"Transferencia no bancaria
"11"Remesa
"12"Permuta
"13"Otros medios no mencionados
"14"Cuentas por pagar
"15"Giro bancario
"99"Otros

Condiciones de operación

Usado en transaction_condition. Catálogo CAT-016.

ValorCondición
1Contado — default
2Crédito
3Otro

Cuando transaction_condition: 2, los campos deadline (días) y period toman relevancia para indicar el plazo del crédito.

Ambientes

Usado en el DTE firmado (campo identificacion.ambiente). No se envía en el payload — se deriva de la configuración de tu empresa.

CódigoAmbiente
"00"Test / Pruebas
"01"Producción

Ver Ambiente y URL base para cómo se configura.

Tipos de documento DTE

CódigoDocumentoEndpoint
"01"FacturaPOST /invoice con doc_type: "01"
"03"Comprobante de Crédito Fiscal (CCF)POST /invoice con doc_type: "03"
"05"Nota de CréditoPOST /credit-memo
"11"Factura de ExportaciónPOST /invoice con doc_type: "11"
"14"Sujeto ExcluidoPOST /suex

El API Connect actual no expone los tipos 04 (Nota de Remisión), 06 (Nota de Débito), 07 (Comprobante de Retención), 08 (Comprobante de Liquidación), 09 (Contable de Liquidación), 15 (Comprobante de Donación). Si tu integración los requiere, consulta con Ocote.

Ver también