> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fegora.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Registrar un DTE recibido a partir de su XML

> Registra un documento recibido de un tercero, a partir de su XML certificado. Acepta los mismos dos formatos de cuerpo que `POST /dte/xml` (JSON o base64 en texto plano). Si no se especifica `accountId`, se resuelve a partir del NIT del receptor dentro del XML. Endpoint público (integraciones de resguardo).



## OpenAPI

````yaml /api-reference/openapi.json post /recibidos/dte/xml
openapi: 3.1.0
info:
  title: Fegora API
  version: '1.0'
  description: >-
    API de Fegora para la emisión y consulta de Documentos Tributarios
    Electrónicos (DTE) en Guatemala, El Salvador y República Dominicana.


    El API es uno solo para los tres países: el país de operación lo determina
    la configuración de la cuenta emisora (no la URL ni ningún parámetro de la
    solicitud). Los campos que varían por país — tipos de documento, catálogos
    de impuestos, identificadores fiscales del receptor, datos adicionales — se
    documentan en la descripción de cada campo.


    Autenticación: OAuth2 (`POST /token`, grant types `password` y
    `refresh_token`) → JWT Bearer con vigencia de 24 horas.
servers:
  - url: https://api.fegora.com
security:
  - bearerAuth: []
tags:
  - name: Autenticación
    description: Obtención y renovación de tokens de acceso.
  - name: DTE
    description: Emisión, consulta, anulación y distribución de documentos emitidos.
  - name: DTE Recibidos
    description: Documentos donde la cuenta es el receptor (facturas de proveedores).
  - name: Lotes
    description: Carga masiva de DTEs mediante archivos Excel.
  - name: Cuentas
    description: Administración de cuentas emisoras/receptoras.
  - name: Catálogos
    description: >-
      Catálogos de referencia: productos, plantillas de PDF, localidades y
      contribuyentes.
  - name: Otros
    description: Endpoints de soporte, como el perfil del usuario autenticado.
paths:
  /recibidos/dte/xml:
    post:
      tags:
        - DTE Recibidos
      summary: Registrar un DTE recibido a partir de su XML
      description: >-
        Registra un documento recibido de un tercero, a partir de su XML
        certificado. Acepta los mismos dos formatos de cuerpo que `POST
        /dte/xml` (JSON o base64 en texto plano). Si no se especifica
        `accountId`, se resuelve a partir del NIT del receptor dentro del XML.
        Endpoint público (integraciones de resguardo).
      operationId: postRecibidosDteXml
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRecibidoFromXmlRequest'
            examples:
              ok:
                value:
                  xmlContent: PD94bWwgdmVyc2lvbj0iMS4wIj8+PGR0ZTpHVERvY3VtZW50by4uLg==
                  accountId: '12345678'
          text/plain:
            schema:
              type: string
              description: XML certificado codificado en base64.
            examples:
              ok:
                value: PD94bWwgdmVyc2lvbj0iMS4wIj8+PGR0ZTpHVERvY3VtZW50by4uLg==
      responses:
        '201':
          description: DTE recibido registrado.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
              examples:
                ok:
                  value:
                    id: 2A280EDA-39D1-4097-937A-6355E4B3A92B
        '400':
          description: Solicitud inválida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                sinReceptor:
                  summary: El XML no trae receptor
                  value:
                    codigo: FEG_BUSINESS_RULE_VIOLATION
                    mensaje: El XML no contiene un receptor.
                    masInformacion: https://developer.fegora.com
                    severidad: 2
                nitNoCoincide:
                  summary: El NIT del receptor no coincide con la cuenta
                  value:
                    codigo: FEG_BUSINESS_RULE_VIOLATION
                    mensaje: >-
                      El NIT receptor del documento (12345678) no coincide con
                      el NIT de la cuenta (87654321)
                    masInformacion: https://developer.fegora.com
                    severidad: 2
      security: []
components:
  schemas:
    CreateRecibidoFromXmlRequest:
      type: object
      description: >-
        Envoltura JSON para registrar un DTE recibido a partir de su XML.
        Alternativamente, el cuerpo puede ser directamente el string en base64
        del XML con `Content-Type: text/plain` (o vacío).
      properties:
        xmlContent:
          type: string
        accountId:
          type: string
          description: >-
            NIT de la cuenta receptora. Si se omite, se resuelve a partir del
            NIT del receptor dentro del XML.
        numeroAcceso:
          type: string
      required:
        - xmlContent
    Error:
      type: object
      description: Formato estándar de error de Fegora. Se usa en toda respuesta 4xx.
      properties:
        codigo:
          type: string
          description: >-
            Código de error interno de Fegora (p. ej. `FEG_VALIDATION_ERROR`,
            `FEG_DTE_CREA_001`). Ver la tabla de códigos de error en la guía de
            introducción.
          examples:
            - FEG_VALIDATION_ERROR
        mensaje:
          type: string
          description: Mensaje descriptivo del error, en español.
        masInformacion:
          type: string
          format: uri
          description: Enlace a documentación adicional sobre el error.
          examples:
            - https://developer.fegora.com
        severidad:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
          description: 0 = Sugerencia, 1 = Advertencia, 2 = Error, 3 = Fatal.
      required:
        - codigo
        - mensaje
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````