MH catalogs
The API Connect uses two kinds of reference catalogs:
- Live — exposed as endpoints, queryable in real time. Use them when you need the full list or a filtered subset.
- Static — fixed enumerated values that don't change. You send them as literals in your requests.
Live catalogs (endpoints)
Economic activities
List from MH CAT-019 catalog — required for activity_code on the CCF customer and for the issuer's activity_code.
| Method | GET |
| URL | https://ocote.io/api/connect/catalogs/activities |
| Query params | search (optional) — filters by code or description. |
| Authentication | Header Authorization: Bearer odt_... |
Example:
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" }
]
The endpoint returns at most 50 results per call. Without search, it returns the first 50. Descriptions are in Spanish (MH's operating language).
Departments and municipalities
List of CAT-012 (departments) and CAT-013 (municipalities) grouped together.
| Method | GET |
| URL | https://ocote.io/api/connect/catalogs/departments |
| Authentication | Header Authorization: Bearer odt_... |
curl https://ocote.io/api/connect/catalogs/departments \
-H "Authorization: Bearer odt_xxx"
Response (abbreviated):
[
{
"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" }
]
}
]
In the customer or excluded-subject payload, they are sent separately as department + municipality:
department= the first 2 digits of the department code (e.g."06"for San Salvador).municipality= the last 2 digits of the municipality code (e.g. for San Salvador Centro"0614"→ send"14").
Correct: "department": "06", "municipality": "14"
Incorrect: "department": "06", "municipality": "0614"
Measurement units
List of MH CAT-014 catalog.
| Method | GET |
| URL | https://ocote.io/api/connect/catalogs/units |
| Authentication | Header Authorization: Bearer odt_... |
curl https://ocote.io/api/connect/catalogs/units \
-H "Authorization: Bearer odt_xxx"
Units are informational. The API Connect uses 99 (Other) by default for all issued lines, since wildcard items do not require specific units. The list is exposed for completeness.
Static catalogs
Contributor types
Used in customer.type_contributor on Invoice, CCF, and Export requests.
| Value | Type |
|---|---|
1 | Small Contributor |
2 | Medium Contributor |
3 | Large Taxpayer — automatic 1% VAT withholding if base ≥ $100 |
4 | Government — automatic 1% VAT withholding if base ≥ $100 |
See Wildcard items > VAT withholding.
Recipient/subject identifier document types
Used in customer.document_type and subject.document_type.
| Code | Document |
|---|---|
"02" | Resident Card |
"03" | Passport |
"13" | DUI (Salvadoran National ID) — default |
"36" | NIT — default for customers with nit |
"37" | Other |
SUEX accepts only these 5 values (the API validates explicitly). Invoice/CCF/Export allow these and other MH codes, but most integrations use 13 (individuals) or 36 (companies).
Payment methods
Used in payment_method. MH CAT-017 catalog.
| Code | Payment method |
|---|---|
"01" | Bills and coins (Cash) — default |
"02" | Debit Card |
"03" | Credit Card |
"04" | Check |
"05" | Transfer / Bank Deposit |
"08" | Electronic money |
"09" | Electronic wallet |
"10" | Non-bank transfer |
"11" | Remittance |
"12" | Barter |
"13" | Other non-listed means |
"14" | Accounts payable |
"15" | Bank draft |
"99" | Other |
Operation conditions
Used in transaction_condition. MH CAT-016 catalog.
| Value | Condition |
|---|---|
1 | Cash — default |
2 | Credit |
3 | Other |
When transaction_condition: 2, the fields deadline (days) and period become relevant to specify credit terms.
Environments
Used in the signed DTE (identificacion.ambiente field). Not sent in the payload — derived from your company configuration.
| Code | Environment |
|---|---|
"00" | Test / QA |
"01" | Production |
See Environment and base URL for how this is configured.
DTE document types
| Code | Document | Endpoint |
|---|---|---|
"01" | Invoice | POST /invoice with doc_type: "01" |
"03" | Tax Credit Voucher (CCF) | POST /invoice with doc_type: "03" |
"05" | Credit Note | POST /credit-memo |
"11" | Export Invoice | POST /invoice with doc_type: "11" |
"14" | Excluded Subject | POST /suex |
The current API Connect does not expose types 04 (Shipping Note), 06 (Debit Note), 07 (Withholding Voucher), 08 (Settlement Voucher), 09 (Accounting Settlement), 15 (Donation Voucher). If your integration needs them, contact Ocote.
See also
- Conventions — general use of enumerated values.
- Invoice (01) — request schema with fields using these catalogs.
- CCF (03) — recipient with
type_contributortriggering withholding. - Excluded Subject (14) — accepted document types.