{
  "_meta": {
    "version": "1.0.0",
    "updated": "2026-05-01",
    "source": "DGII PSFE Technical Spec + DGII Norma 06-04 + blueprint Works Cited #4, #8, #14",
    "problem_type_base": "https://errors.api.erply.pro/",
    "schema": {
      "code": "DGII raw error code (string).",
      "slug": "Stable URL slug used in Problem.type and docs path.",
      "category": "validation | signature | schema | rnc | sequence | timing | network | internal",
      "http_status": "RFC 9457 status integer.",
      "title_es": "Spanish title.",
      "title_en": "English title.",
      "retryable": "Whether retrying the same request without changes can succeed.",
      "tenant_fixable": "true if the tenant can self-remediate; false if middleware bug or DGII-side."
    }
  },
  "errors": [
    { "code": "1",  "slug": "dgii-1-rnc-no-existe",                      "category": "rnc",        "http_status": 422, "title_es": "RNC no existe en el registro DGII",                "title_en": "RNC not found in DGII registry",                "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "2",  "slug": "dgii-2-rnc-inactivo",                       "category": "rnc",        "http_status": 422, "title_es": "RNC inactivo o suspendido",                       "title_en": "RNC inactive or suspended",                     "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "3",  "slug": "dgii-3-rnc-no-emisor-electronico",          "category": "rnc",        "http_status": 422, "title_es": "RNC no autorizado como emisor electrónico",       "title_en": "RNC not authorised as electronic issuer",       "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "10", "slug": "dgii-10-encf-formato-invalido",             "category": "validation", "http_status": 400, "title_es": "Formato de eNCF inválido",                        "title_en": "Invalid eNCF format",                           "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "11", "slug": "dgii-11-encf-secuencia-agotada",            "category": "sequence",   "http_status": 422, "title_es": "Secuencia de eNCF agotada",                       "title_en": "eNCF sequence exhausted",                       "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "12", "slug": "dgii-12-encf-fuera-de-rango",               "category": "sequence",   "http_status": 422, "title_es": "eNCF fuera del rango autorizado",                 "title_en": "eNCF outside authorised range",                 "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "13", "slug": "dgii-13-encf-duplicado",                    "category": "sequence",   "http_status": 409, "title_es": "eNCF duplicado",                                  "title_en": "Duplicate eNCF",                                "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "14", "slug": "dgii-14-tipo-comprobante-no-permitido",     "category": "validation", "http_status": 422, "title_es": "Tipo de comprobante no permitido para este RNC",  "title_en": "e-CF type not allowed for this RNC",            "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "15", "slug": "dgii-15-fecha-emision-futura",              "category": "timing",     "http_status": 422, "title_es": "Fecha de emisión en el futuro",                   "title_en": "Issue date is in the future",                   "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "16", "slug": "dgii-16-fecha-emision-anterior-permitida",  "category": "timing",     "http_status": 422, "title_es": "Fecha de emisión anterior al período permitido",  "title_en": "Issue date earlier than allowed window",        "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "17", "slug": "dgii-17-totales-inconsistentes",            "category": "validation", "http_status": 422, "title_es": "Totales inconsistentes con el detalle de líneas", "title_en": "Totals do not match line detail",               "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "18", "slug": "dgii-18-itbis-mal-calculado",               "category": "validation", "http_status": 422, "title_es": "ITBIS calculado incorrectamente",                 "title_en": "ITBIS calculated incorrectly",                  "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "19", "slug": "dgii-19-moneda-no-soportada",               "category": "validation", "http_status": 422, "title_es": "Moneda no soportada",                             "title_en": "Currency not supported",                        "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "20", "slug": "dgii-20-tasa-cambio-requerida",             "category": "validation", "http_status": 422, "title_es": "Tasa de cambio requerida para moneda extranjera", "title_en": "Exchange rate required for foreign currency",   "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "30", "slug": "dgii-30-firma-invalida",                    "category": "signature",  "http_status": 422, "title_es": "Firma XAdES-BES inválida",                        "title_en": "Invalid XAdES-BES signature",                   "retryable": false, "tenant_fixable": false, "stub": false },
    { "code": "31", "slug": "dgii-31-certificado-expirado",              "category": "signature",  "http_status": 422, "title_es": "Certificado del firmante expirado",               "title_en": "Signer certificate expired",                    "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "32", "slug": "dgii-32-certificado-revocado",              "category": "signature",  "http_status": 422, "title_es": "Certificado del firmante revocado",               "title_en": "Signer certificate revoked",                    "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "33", "slug": "dgii-33-certificado-no-autorizado-indotel", "category": "signature",  "http_status": 422, "title_es": "Certificado no emitido por una AC autorizada por INDOTEL", "title_en": "Certificate not issued by an INDOTEL-approved CA", "retryable": false, "tenant_fixable": true, "stub": false },
    { "code": "34", "slug": "dgii-34-canonicalizacion-invalida",         "category": "signature",  "http_status": 422, "title_es": "Canonicalización XML no es Exclusive C14N",       "title_en": "XML canonicalisation is not Exclusive C14N",    "retryable": false, "tenant_fixable": false, "stub": false },
    { "code": "35", "slug": "dgii-35-digest-no-coincide",                "category": "signature",  "http_status": 422, "title_es": "Digest del documento no coincide con la firma",   "title_en": "Document digest does not match signature",      "retryable": false, "tenant_fixable": false, "stub": false },
    { "code": "40", "slug": "dgii-40-xsd-version-no-soportada",          "category": "schema",     "http_status": 422, "title_es": "Versión de XSD no soportada",                     "title_en": "Unsupported XSD version",                       "retryable": false, "tenant_fixable": false, "stub": true  },
    { "code": "41", "slug": "dgii-41-xml-malformado",                    "category": "schema",     "http_status": 400, "title_es": "XML malformado",                                  "title_en": "Malformed XML",                                 "retryable": false, "tenant_fixable": false, "stub": true  },
    { "code": "42", "slug": "dgii-42-elemento-requerido-ausente",        "category": "schema",     "http_status": 422, "title_es": "Elemento XSD requerido ausente",                  "title_en": "Required XSD element missing",                  "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "43", "slug": "dgii-43-namespace-incorrecto",              "category": "schema",     "http_status": 422, "title_es": "Namespace XML incorrecto",                        "title_en": "Incorrect XML namespace",                       "retryable": false, "tenant_fixable": false, "stub": true  },
    { "code": "44", "slug": "dgii-44-encf-no-corresponde-tipo",          "category": "validation", "http_status": 422, "title_es": "eNCF no corresponde al tipo declarado",           "title_en": "eNCF does not match declared type",             "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "50", "slug": "dgii-50-comprador-rnc-invalido",            "category": "validation", "http_status": 422, "title_es": "RNC del comprador inválido",                      "title_en": "Buyer RNC invalid",                             "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "51", "slug": "dgii-51-comprador-requerido",               "category": "validation", "http_status": 422, "title_es": "Datos del comprador requeridos para este tipo",   "title_en": "Buyer details required for this type",          "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "52", "slug": "dgii-52-monto-excede-tipo-32",              "category": "validation", "http_status": 422, "title_es": "Monto excede el límite de e-CF tipo 32 (Consumo)", "title_en": "Amount exceeds Type 32 (Consumption) limit",   "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "53", "slug": "dgii-53-nota-credito-sin-padre",            "category": "validation", "http_status": 422, "title_es": "Nota de crédito sin eNCF padre válido",           "title_en": "Credit note missing valid parent eNCF",         "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "54", "slug": "dgii-54-nota-debito-sin-padre",             "category": "validation", "http_status": 422, "title_es": "Nota de débito sin eNCF padre válido",            "title_en": "Debit note missing valid parent eNCF",          "retryable": false, "tenant_fixable": true,  "stub": false },
    { "code": "60", "slug": "dgii-60-token-invalido",                    "category": "internal",   "http_status": 401, "title_es": "Token DGII inválido o expirado",                  "title_en": "DGII token invalid or expired",                 "retryable": true,  "tenant_fixable": false, "stub": true  },
    { "code": "61", "slug": "dgii-61-cuota-diaria-excedida",             "category": "timing",     "http_status": 429, "title_es": "Cuota diaria de envíos excedida",                 "title_en": "Daily submission quota exceeded",               "retryable": true,  "tenant_fixable": true,  "stub": true  },
    { "code": "62", "slug": "dgii-62-rate-limit-dgii",                   "category": "timing",     "http_status": 429, "title_es": "Límite de tasa DGII alcanzado",                   "title_en": "DGII rate limit reached",                       "retryable": true,  "tenant_fixable": false, "stub": true  },
    { "code": "70", "slug": "dgii-70-mantenimiento",                     "category": "network",    "http_status": 503, "title_es": "Servicio DGII en mantenimiento",                  "title_en": "DGII service under maintenance",                "retryable": true,  "tenant_fixable": false, "stub": false },
    { "code": "71", "slug": "dgii-71-timeout",                           "category": "network",    "http_status": 504, "title_es": "Tiempo de espera agotado al contactar DGII",      "title_en": "Timeout contacting DGII",                       "retryable": true,  "tenant_fixable": false, "stub": false },
    { "code": "72", "slug": "dgii-72-conectividad",                      "category": "network",    "http_status": 502, "title_es": "Error de conectividad con DGII",                  "title_en": "DGII connectivity error",                       "retryable": true,  "tenant_fixable": false, "stub": true  },
    { "code": "73", "slug": "dgii-73-respuesta-malformada",              "category": "network",    "http_status": 502, "title_es": "Respuesta DGII malformada",                       "title_en": "Malformed DGII response",                       "retryable": true,  "tenant_fixable": false, "stub": true  },
    { "code": "80", "slug": "dgii-80-track-id-no-encontrado",            "category": "validation", "http_status": 404, "title_es": "TrackId no encontrado en DGII",                   "title_en": "TrackId not found at DGII",                     "retryable": false, "tenant_fixable": false, "stub": true  },
    { "code": "81", "slug": "dgii-81-track-id-no-pertenece-rnc",         "category": "validation", "http_status": 403, "title_es": "TrackId no pertenece al RNC consultante",         "title_en": "TrackId does not belong to querying RNC",       "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "82", "slug": "dgii-82-aprobacion-comercial-rechazada",    "category": "validation", "http_status": 422, "title_es": "Aprobación comercial rechazada por el comprador", "title_en": "Commercial approval rejected by buyer",         "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "90", "slug": "dgii-90-itbis-exento-mal-clasificado",      "category": "validation", "http_status": 422, "title_es": "ITBIS exento mal clasificado",                    "title_en": "Exempt ITBIS misclassified",                    "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "91", "slug": "dgii-91-tasa-itbis-no-permitida",           "category": "validation", "http_status": 422, "title_es": "Tasa de ITBIS no permitida (use 0%, 16% ó 18%)",  "title_en": "ITBIS rate not allowed (use 0%, 16% or 18%)",   "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "92", "slug": "dgii-92-isc-no-aplicable",                  "category": "validation", "http_status": 422, "title_es": "ISC no aplicable a este tipo de bien o servicio", "title_en": "ISC not applicable to this product or service", "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "93", "slug": "dgii-93-propina-legal-mal-aplicada",        "category": "validation", "http_status": 422, "title_es": "Propina legal (10%) mal aplicada",                "title_en": "Legal tip (10%) misapplied",                    "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "94", "slug": "dgii-94-retencion-isr-mal-aplicada",        "category": "validation", "http_status": 422, "title_es": "Retención de ISR mal aplicada",                   "title_en": "ISR withholding misapplied",                    "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "95", "slug": "dgii-95-retencion-itbis-mal-aplicada",      "category": "validation", "http_status": 422, "title_es": "Retención de ITBIS mal aplicada",                 "title_en": "ITBIS withholding misapplied",                  "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "96", "slug": "dgii-96-descuento-excede-permitido",        "category": "validation", "http_status": 422, "title_es": "Descuento excede el porcentaje permitido",        "title_en": "Discount exceeds allowed percentage",           "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "97", "slug": "dgii-97-formato-fecha-invalido",            "category": "validation", "http_status": 400, "title_es": "Formato de fecha inválido (use AAAA-MM-DD)",      "title_en": "Invalid date format (use YYYY-MM-DD)",          "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "98", "slug": "dgii-98-decimales-excedidos",               "category": "validation", "http_status": 400, "title_es": "Excedió los decimales permitidos (máx. 2)",       "title_en": "Exceeded allowed decimals (max 2)",             "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "99", "slug": "dgii-99-error-generico",                    "category": "internal",   "http_status": 500, "title_es": "Error genérico DGII",                             "title_en": "Generic DGII error",                            "retryable": true,  "tenant_fixable": false, "stub": true  },
    { "code": "100", "slug": "dgii-100-payload-excede-tamano",           "category": "validation", "http_status": 413, "title_es": "Payload excede el tamaño máximo (8 MB)",          "title_en": "Payload exceeds maximum size (8 MB)",           "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "101", "slug": "dgii-101-encabezado-incompleto",           "category": "schema",     "http_status": 422, "title_es": "Encabezado del e-CF incompleto",                  "title_en": "e-CF header incomplete",                        "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "102", "slug": "dgii-102-detalles-vacios",                 "category": "validation", "http_status": 422, "title_es": "El detalle de líneas no puede estar vacío",       "title_en": "Line detail cannot be empty",                   "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "103", "slug": "dgii-103-codigo-producto-no-cargado",      "category": "validation", "http_status": 422, "title_es": "Código de producto/servicio no registrado en DGII", "title_en": "Product/service code not registered with DGII", "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "104", "slug": "dgii-104-direccion-comprador-requerida",   "category": "validation", "http_status": 422, "title_es": "Dirección del comprador requerida",               "title_en": "Buyer address required",                        "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "105", "slug": "dgii-105-pais-no-soportado",               "category": "validation", "http_status": 422, "title_es": "País del comprador no soportado",                 "title_en": "Buyer country not supported",                   "retryable": false, "tenant_fixable": true,  "stub": true  },
    { "code": "106", "slug": "dgii-106-orden-compra-formato",            "category": "validation", "http_status": 422, "title_es": "Formato de orden de compra inválido",             "title_en": "Purchase order format invalid",                 "retryable": false, "tenant_fixable": true,  "stub": true  }
  ]
}
