Documentación Integración habbiles
    • Generación Factura Electrónica
      POST
    • Habilitación Factura Electrónica
      POST
    • Generación Nomina
      POST
    • Nomina habilitación
      POST
    • Obtener Numeración
      GET
    • Guardar Numeración
      POST
    • Obtener Recepciones
      GET
    • Generación Documento Equivalente POS (Archivo)
      POST
    • Generación Documento Equivalente POS (Body)
      POST
    • Habilitación Documento Equivalente POS
      POST
    • Generación Documento Soporte
      POST
    • Generación Nota Documento Soporte
      POST
    • Schemas
      • Petición Generación FE, NC, ND
      • Response General
      • NominaElectronica
      • Nómina de Eliminación
      • Nómina de Ajuste
      • GetNumeracion
      • Documentos Recibidos
      • Response POS
      • Petición POS Body
      • Documento Equivalente POS (estructura ERP)
      • Petición Documento Soporte

      Generación Documento Soporte

      Desarrollando
      POST
      http://localhost:9092/arqGeneratorDSController/v1/process-support-document
      Última modificación:2026-08-05 22:25:17

      Emisión de Documento Soporte#

      1. Descripción#

      Emite el documento soporte en adquisiciones efectuadas a no obligados a facturar y lo
      transmite a la DIAN en una sola llamada.
      Se envía el documento en formato JSON con los datos del proveedor, el detalle de los bienes o
      servicios adquiridos, los impuestos y las retenciones practicadas. El servicio asigna la
      numeración autorizada, construye el documento electrónico, lo firma y lo radica ante la DIAN,
      devolviendo el resultado en la misma respuesta.
      Si no se envía la numeración (SeriePrefix / SerieNumber), el servicio toma la resolución
      vigente registrada para la empresa y asigna el siguiente consecutivo disponible.

      2. Método y ruta#

      POST /arqGeneratorDSController/v1/process-support-document
      Content-Type: application/json

      3. Headers#

      HeaderObligatorioDescripción
      x-api-keySíLlave de integración entregada a la empresa.
      x-company-idSíIdentificador de la empresa que emite el documento.
      Content-TypeSíapplication/json

      4. Tipo de documento#

      No se envía: la ruta emite siempre documento soporte. Las notas de ajuste sobre un documento
      soporte ya emitido se solicitan por su propio servicio.

      5. Body#

      Para la estructura de data JSON Generacion Documento Soporte.
      Los datos que no se envíen se completan con los del proveedor ya registrado en la plataforma
      y, en su defecto, con los de la empresa emisora.
      Quienes ya integran el servicio de factura pueden enviar este bloque como CustomerParty:
      se acepta como equivalente de SupplierParty.
      Reglas:
      El IVA (01) va en TaxSubTotals; ReteIVA (05) y ReteRenta (06) van en
      WithholdingTaxSubTotals. Enviarlos cruzados devuelve error.
      Cada línea admite una sola tarifa de IVA.
      Un documento puede combinar líneas gravadas, exentas y excluidas:
      Gravada: TaxSubTotals con su tarifa (19.00, 5.00, …).
      Exenta: TaxSubTotals con TaxPercentage y TaxAmount en 0.00. Su valor sí entra en
      la base imponible del documento.
      Excluida: sin TaxSubTotals. Su valor no entra en la base imponible.
      Las retenciones se informan en el documento electrónico como valores independientes; no se
      descuentan del valor a pagar.

      6. Respuesta#

      Nota: la respuesta HTTP es 200 en todos los casos de negocio (documento emitido,
      documento rechazado por la DIAN y documento con datos inválidos). El resultado real se lee en
      ResultCode e IsValid.

      7. Códigos de resultado#

      ResultCodeHTTPIsValidSignificado
      200200trueDocumento emitido y aceptado por la DIAN.
      200200falseDocumento emitido pero rechazado por la DIAN. El detalle viaja en Errors.
      400200falseLos datos enviados no permiten emitir el documento (validaciones de estructura, fechas, totales o numeración).
      401200falseLa llave de integración no corresponde a la empresa.
      500500falseError inesperado durante el procesamiento.

      8. Ejemplos de respuesta#

      8.1 Documento emitido y aceptado#

      {
        "Errors": [],
        "IsValid": true,
        "ResultCode": 200,
        "Warning": [],
        "ResultData": "Procesado Correctamente."
      }

      8.2 Documento emitido con notificaciones#

      {
        "Errors": [],
        "IsValid": true,
        "ResultCode": 200,
        "Warning": [
          "No se informó SeriePrefix/SerieNumber; se usó la numeración SETU registrada para la empresa.",
          "La numeración SETU vence el 2026-08-31."
        ],
        "ResultData": "Procesado Correctamente."
      }

      8.3 Operación acumulada que supera la semana#

      {
        "Errors": [
          "Línea 1: la operación acumulada solo puede agrupar una semana. PeriodStartDate (2026-06-04) está a 61 días de la fecha actual y el máximo es 6."
        ],
        "IsValid": false,
        "ResultCode": 400,
        "Warning": [],
        "ResultData": "Línea 1: la operación acumulada solo puede agrupar una semana. PeriodStartDate (2026-06-04) está a 61 días de la fecha actual y el máximo es 6."
      }

      8.4 Llave de integración inválida#

      {
        "Errors": ["API Key inválida"],
        "IsValid": false,
        "ResultCode": 401,
        "Warning": [],
        "ResultData": "Credenciales inválidas para la compañía con ID: 58"
      }

      8.5 Documento rechazado por la DIAN#

      {
        "Errors": ["Rechazo: Regla: DSAB01, Notificación: ..."],
        "IsValid": false,
        "ResultCode": 200,
        "Warning": [],
        "ResultData": "Procesado con errores."
      }

      8.6 Error inesperado#

      {
        "Errors": ["Error al consumir el servicio"],
        "IsValid": false,
        "ResultCode": 500,
        "Warning": [],
        "ResultData": "Error al consumir el servicio"
      }

      Solicitud

      Parámetros de Header

      Parámetros del Body application/jsonRequerido

      Ejemplos

      Respuestas

      🟢200Éxito
      application/json
      Bodyapplication/json

      Solicitud Ejemplo de Solicitud
      Shell
      JavaScript
      Java
      Swift
      curl --location 'http://localhost:9092/arqGeneratorDSController/v1/process-support-document' \
      --header 'x-company-id: 2' \
      --header 'x-api-key: 1111-11111-1111-1212121212' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "Currency": "COP",
        "SeriePrefix": "",
        "IssueDate": "2026-08-04T10:30:00",
        "SupplierParty": {
          "LegalType": "Legal",
          "Email": "proveedor@correo.com",
          "TaxScheme": "01",
          "ResponsabilityTypes": [
            "R-99-PN"
          ],
          "Identification": {
            "DocumentNumber": "1006017896",
            "DocumentType": "NIT",
            "CountryCode": "CO",
            "CheckDigit": "1"
          },
          "Name": "OFUS NAME",
          "Address": {
            "DepartmentCode": "76",
            "CityCode": "76520",
            "AddressLine": "CL 5 # 12 - 34",
            "Country": "CO",
            "PostalCode": "765200"
          }
        },
        "Lines": [
          {
            "Number": "1",
            "Quantity": "1",
            "QuantityUnitOfMeasure": "94",
            "OperationType": "1",
            "PeriodStartDate": "2026-08-04",
            "UnitPrice": "100000.00",
            "NetAmount": "100000.00",
            "Item": {
              "Gtin": "SRV-11",
              "Description": "Servicio con retenciones sin base"
            },
            "TaxSubTotals": [
              {
                "TaxCategory": "01",
                "TaxPercentage": "19.00",
                "TaxableAmount": "100000.00",
                "TaxAmount": "19000.00"
              }
            ],
            "WithholdingTaxSubTotals": [
              {
                "TaxCategory": "05",
                "TaxPercentage": "15.00"
              },
              {
                "TaxCategory": "06",
                "TaxPercentage": "2.50"
              }
            ]
          }
        ],
        "TaxTotals": [
          {
            "TaxCategory": "01",
            "TaxAmount": "19000.00"
          }
        ],
        "Total": {
          "TaxableAmount": "100000.00",
          "PayableAmount": "119000.00",
          "TaxAmount": "19000.00",
          "WithholdingTaxAmount": "5350.00"
        }
      }'
      Respuesta Ejemplo de Respuesta
      {
          "Errors": [
              "string"
          ],
          "IsValid": true,
          "ResultCode": 0,
          "Warning": [
              "string"
          ],
          "ResultData": "string"
      }
      Modificado en 2026-08-05 22:25:17
      Anterior
      Habilitación Documento Equivalente POS
      Siguiente
      Generación Nota Documento Soporte
      Built with