1. Generación
Documentación Integración habbiles
  • Generación
    • Generación Factura Electrónica
      POST
    • Generación Nomina
      POST
    • Generación Documento Equivalente POS (Archivo)
      POST
    • Generación Documento Equivalente POS (Body)
      POST
    • Generación Documento Soporte
      POST
    • Generación Nota Documento Soporte
      POST
  • Habilitación
    • Habilitación Documento Equivalente POS
      POST
    • Habilitación Factura Electrónica
      POST
    • Habilitación Nomina
      POST
  • Obtener Numeración
    GET
  • Guardar Numeración
    POST
  • Obtener Recepciones
    GET
  • registrar transacciones por fecha
    GET
  • 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)
    • CompanyRegistrationRequest
    • CompanyRegistrationResponse
    • ApiKeyCreateRequest
    • ApiKeyCreatedResponse
    • ApiKeyResponse
    • ApiKeyPage
    • ApiKeyRotateRequest
    • ApiKeyRevokeRequest
    • ErrorResponse
    • Petición Documento Soporte
  1. Generación

Generación Documento Soporte

Desarrollando
POST
http://localhost:9092/arqGeneratorDSController/v1/process-support-document
Última modificación:2026-09-16 15:04:10

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-09-16 15:04:10
Anterior
Generación Documento Equivalente POS (Body)
Siguiente
Generación Nota Documento Soporte
Built with