Documento equivalente P.O.S.¶
Url POST
¶
/service/pos
Headers¶
Content-Type: application/json Accept: application/json Authorization: Bearer token
Parameters¶
- pos_pdf:
type: boolean
default:
false
Indica si se construye pdf en formato tirilla.
- number * :
type: integer
Numero de la factura sin prefijos.
- prefix:
type: string
Prefijo de la factura.
- cash_register * :
Type: object
Información correspondiente a los datos de la caja de ventas.
- name * :
Type: string
Corresponde a la Placa de inventario de la Caja.
- ubication * :
Type: string
Corresponde a la Ubicación de la caja.
- cashier * :
Type: string
Corresponde a los Nombres y apellidos del cajero o vendedor.
- type * :
Type: string
Corresponse al Tipo de Caja.
- sale_reference * :
Type: string
Corresponde al Código de la Venta.
- subtotal * :
Type: string
Corresponde al valor del Subtotal de la venta.
- customer_benefits * :
Type: object
Información correspondiente a los beneficios del Comprador.
- identification_number * :
Type: string
Corresponde al Codigo del comprador Documento identidad.
- name * :
Type: string
Corresponde a los Nombres y apellidos del comprador.
- points * :
Type: string
Corresponde a un valor donde se informe la Cantidad de Puntos acumulados por el comprador.
- software_manufacturer * :
Type: object
Información correspondiente a los datos del fabricante del Software.
- software_developer * :
Type: string
Corresponde a los nombres y apellidos del fabricante del software.
- registration_name * :
Type: string
Corresponde a la Razón social del fabricante del software.
- software_name * :
Type: string
Corresponde al Nombre del Software.
- branch_office:
Type: object
Datos de la sucursal (emisor de documento).
- logo:
Type: string
URL del logotipo de la sucursal.
- country_code:
Type: string
Código de país.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Country.
- municipality_code:
Type: string
Código de municipio.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Municipality.
Es obligatorio si
country_code
es igual a «CO» o null.- name:
Type: string
Nombre o razón social del empresa.
- trade_name:
Type: string
Nombre comercial de la empresa.
- phone:
Type: string
Teléfono.
Nota
Solo se permiten caracteres numericos, espacios o los simbolos + - _ ( ).
- address:
Type: string
Dirección.
- email:
Type: string
Correo electrónico.
- merchant_registration:
Type: string
Registro mercantil.
- send:
type: boolean
default:
false
Indica si se envía correo al cliente con representación gráfica y demás adjuntos.
- notes:
Type: array object
Información adicional u observaciones.
- text * :
Type: string
Texto libre, relativo al documento.
- operation_type_code * :
type: string
Código del tipo de operación. Este código representa tipos como: combustibles, emisor es auto-retenedor, mandato bienes, exportación, genérica, etc.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/OperationType.
Para Sector Salud https://test.endpoint.emision.co/dian-tables/OperationType/health.
- document_type_code * :
type: string
Código de tipo de documento. Este código representa tipos de de documentos como: Factura de venta nacional, factura de exportación, factura por contingencia facturador, factura por contingencia DIAN, nota crédito, nota débito, ZIP.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/DocumentType.
- identification_number * :
type: integer
Número del documento de identificación del emisor sin dígito de verificación.
- resolution_number * :
type: integer
Número de la resolución.
- date:
type: string(AAAA-MM-DD)
Fecha de emisión del documento.
- time:
type: string(00:00:00)
Hora de emisión del documento en formato 24 horas.
- currency_type_code * :
type: string
Código del tipo moneda del documento.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/CurrencyType.
- order_reference:
type: object
Datos correspondientes a la orden de compra.
- id * :
type: string
Prefijo y número del documento orden referenciado.
- issue_date:
type: string(AAAA-MM-DD)
Fecha de emisión de la orden.
- credit_note_document_references:
Type: array object
Notas Crédito que dieron origen a la presente Factura Electrónica (Se debe diligenciar únicamente cuando la FE se origina a partir de la corrección o ajuste que se da mediante una Nota Crédito).
- number * :
Type: string
Prefijo + Número de la factura electrónica referenciada.
- uuid * :
Type: string
CUDE de la nota crédito relacionada.
- issue_date * :
Type: string($date)
Fecha de emisión de la nota crédito relacionada.
- debit_note_document_references:
Type: array object
Nota Débito que dio origen a la presente Factura Electrónica (Se debe diligenciar únicamente cuando la FE se origina a partir de la corrección o ajuste que se da mediante una Nota Débito).
- number * :
Type: string
Prefijo + Número de la factura electrónica referenciada.
- uuid * :
Type: string
CUDE de la nota débito relacionada.
- issue_date * :
Type: string($date)
Fecha de emisión de la nota débito relacionada.
- additional_document_references:
Type: array object
Referencias de documentos adicionales (Tipo de operación «SS-Num» referencia a tipos de documentos «Factura Talonario», Obligatorio si la propiedad «type_document_id» es 3).
- number * :
Type: string
Prefijo y número del documento referenciado.
- issue_date * :
Type: string($date)
Fecha de emisión del documento referenciado.
- type_of_non_tax_document_id:
Type: string
Corresponde a una codificación propia de la empresa (Para el tipo de operación «SS-POS» debe enviar el valor «_n_»).
- invoice_period:
type: object
Periodo entre el cual se emite la facturación. El formato de la fecha AAAA-MM-DD. El formato 24 horas 00:00:00.
- start_date * :
type: string(AAAA-MM-DD)
Fecha de inicio del periodo de facturación.
- start_time:
type: string(00:00:00)
Hora de inicio del periodo de facturación en formato 24 horas.
- end_date * :
type: string(AAAA-MM-DD)
Fecha de fin del periodo de facturación.
- end_time:
type: string(00:00:00)
Hora de fin del periodo de facturación en formato 24 horas.
- payment_exchange_rate:
type: object
Tasa de cambio que representa la conversión de moneda al documento
currency_type_code
contra otra moneda especificadapayment_exchange_rate.currency_type_code
.
- currency_type_code * :
type: string
Código del tipo moneda a la cual se hace la conversión.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/CurrencyType.
- calculation_rate * :
type: double
Valor de la tasa de cambio.
- date * :
type: string (AAAA-MM-DD)
Fecha en la que se fijó la tasa de cambio
- customer * :
Type: object
Datos del cliente (receptor del documento).
- identification_number * :
Type: integer
Número de identificación.
- name * :
Type: string
Nombre o razón social del empresa.
- email * :
Type: string
Correo electrónico.
Nota
Si desea reportar varios emails usar ; como separador.
- dv:
Type: integer
Dígito de verificación, es obligatorio si el tipo de documento es NIT.
- identification_type_code:
Type: string
Código de documento de identidad (código asociado al NIT, cédula, etc).
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/IdentificationType.
- organization_type_code:
Type: string
Código de tipo de organización (asociado a persona natural, persona jurídica).
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/OrganizationType.
- language_code:
Type: string
Default:
es
Código de idioma.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Language.
- country_code:
Type: string
Código de país.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Country.
- municipality_code:
Type: string
Código de municipio.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Municipality.
Es obligatorio si
country_code
es igual a «CO».- regime_type_code:
Type: string
Código de régimen.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/RegimeType.
- tax_code:
Type: string
Código de impuesto (Identificador del tributo del adquirente).
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/TaxDetail.
- liability_type_code:
Type: string
Código de responsabilidad.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/LiabilityType.
- trade_name:
Type: string
Nombre comercial de la empresa.
- phone:
Type: string
Teléfono.
Nota
Solo se permiten caracteres numericos, espacios o los simbolos + - _ ( ).
- address:
Type: string
Dirección.
- merchant_registration:
Type: string
Registro mercantil.
- delivery:
Type: object
Datos de información de entrega de los bienes.
- actual_delivery_date * :
Type: string(YYYY-MM-DD)
Fecha efectiva de entrega de los bienes.
- actual_delivery_time * :
Type: string(00:00:00)
Hora efectiva de entrega de los bienes en formato de 24 horas.
- delivery_terms:
Type: array object
Información relacionadas con la entrega.
- special_terms:
Type: string
Método de pago de costes de transporte.
Nota
Se utilizar para indicar cómo se pagan los costes del transporte (por ejemplo, Portes Debidos, Portes Pagados) Puede ser un texto libre que entiendan el comprador y vendedor o codificarlo en una lista, por ejemplo http://www.unece.org/trade/untdid/d01b/tred/tred4215.html.
- delivery_type_code:
Type: integer
Código del tipo de entrega.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/DeliveryType.
- loss_risk:
Type: string
Riesgo de pérdida.
payment_form* :Type: object
Obsoleto desde la versión 3.0.
Forma de pago.
payment_form_code* :Type: string
Código de forma de pago.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/PaymentForm.
payment_method_code* :Type: string
Código del método de pago.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/PaymentMethod.
payment_due_date:Type: string(YYYY-MM-DD)
Fecha de vencimiento del pago.
Nota
Es obligatorio si la forma de pago es a crédito.
duration_measure:Type: integer
Medida de duración en días.
Nota
Es obligatorio si la forma de pago es a crédito.
- payment_forms * :
Type: array object
Formas de pago.
- payment_form_code * :
Type: string
Código de forma de pago.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/PaymentForm.
- payment_method_code * :
Type: string
Código del método de pago.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/PaymentMethod.
- payment_due_date:
Type: string(YYYY-MM-DD)
Fecha de vencimiento del pago.
Nota
Es obligatorio si la forma de pago es a crédito.
- duration_measure:
Type: integer
Medida de duración en días.
Nota
Es obligatorio si la forma de pago es a crédito.
- prepaid_payments:
Type: array object
Anticipos.
- identifier * :
Type: string
Identificación del pago.
- paid_amount * :
Type: double
Valor del pago.
- received_date:
Type: string(YYYY-MM-DD)
Fecha en la cual el pago fue recibido.
- paid_date:
Type: string(YYYY-MM-DD)
Fecha en la cual el pago fue realizado.
- instruction_id:
Type: string
Instrucciones relativas al pago.
- allowance_charges:
Type: array object
Cargos o descuentos
- charge_indicator * :
Type: boolean
Cargo o descuento.
Nota
Cargo es true, es un Débito aumenta el valor de la factura y se debe reportar en el
legal_monetary_totals
. Descuento es false, un Crédito descuenta el valor de la factura antes de tributos y debe reportarse en ellegal_monetary_totals
- discount_code:
Type: string
Código de descuento.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Discount.
- allowance_charge_reason * :
Type: string
Razón del cargo o descuento.
- amount * :
Type: double
Cantidad.
- base_amount * :
Type: double
Cantidad base.
- tax_totals:
Type: array object
Totales impuestos.
- tax_code * :
Type: string
Código impuesto.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Tax.
- percent:
Type: double
Porcentaje.
- tax_amount * :
Type: double
Importe del impuesto.
- taxable_amount * :
Type: double
Base imponible.
- rounding_amount:
Type: integer($double)
Redondeo agregado al total del impuesto.
- unit_measure_code:
Type: string
Código de unidad de medida.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/UnitMeasure.
- per_unit_amount:
Type: double
Por unidad de cantidad.
- base_unit_measure:
Type: double
Medida unidad base.
- withholding_tax_totals:
Type: array object
Totales retenciones.
- tax_code * :
Type: integer
Código impuesto.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Tax.
- percent:
Type: double
Porcentaje.
- tax_amount * :
Type: double
Importe del impuesto.
- taxable_amount * :
Type: double
Base imponible.
- legal_monetary_totals * :
Type: object
Totales monetarios legales
- line_extension_amount * :
Type: double
Cantidad de extensión de línea. Suma de los valores brutos de las líneas de la factura.
- tax_exclusive_amount * :
Type: double
Cantidad exclusiva de impuestos. Suma de los valores de las bases imponibles de todas líneas de detalle.
- tax_inclusive_amount * :
Type: double
Cantidad de impuestos incluidos. Valor bruto de la factura más la suma de los tributos de todas las líneas de detalle.
- allowance_total_amount * :
Type: double
Cantidad total de la asignación. Suma de todos los descuentos aplicados a nivel de la factura.
- charge_total_amount * :
Type: double
Cantidad del importe total. Suma de todos los cargos aplicados a nivel de la factura.
- payable_rounding_amount:
Type: integer($double)
Cantidad del redondeo total
- payable_amount * :
Type: double
Cantidad a pagar. Valor total de ítems (incluyendo cargos y descuentos a nivel de ítems)+valor tributos + valor cargos – valor descuentos.
Nota
Si la factura pertenece al sector salud se debe restar el anticipo.
- invoice_lines:
Type: array object
Lineas de la factura.
- notes:
Type: array object
Información adicional
- text * :
Type: string
Texto libre para añadir información adicional al artículo.
- item_sector_identification_type_code:
Type: integer
Código del tipo de identificación del sector del artículo.
Nota
Obligatorio cuando se informe el tipo de operación 11 o 12.
Para mandatos ver listado en https://test.endpoint.emision.co/dian-tables/ItemSectorIdentificationType/mandate.
Para trasporte ver listado en https://test.endpoint.emision.co/dian-tables/ItemSectorIdentificationType/transport.
- unit_measure_code * :
Type: string
unidades de medida.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/UnitMeasure.
- invoiced_quantity * :
Type: double
Cantidad facturada.
- line_extension_amount * :
Type: double
Valor total de la línea.
free_of_charge_indicator *:Type: boolean
Obsoleto desde la versión 3.0.
Indicador de cargos.
- reference_price_code:
Type: string
Código de referencia precios.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/ReferencePrice.
- allowance_charges:
Type: array object
Descuentos y cargos.
- charge_indicator * :
Type: boolean
Indicador de cargo.
- allowance_charge_reason * :
Type: string
Razón del cargo o descuento.
- amount * :
Type: double
Total.
- base_amount:
Type: double
Cantidad base.
- multiplier_factor_numeric:
Type: double
Porcentaje del descuento.
- tax_totals:
Type: array object
Impuestos totales.
- tax_code * :
Type: string
Código del impuesto.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Tax.
- tax_amount * :
Type: double
Total a pagar.
- taxable_amount * :
Type: double
Base imponible.
- rounding_amount:
Type: integer($double)
Redondeo agregado al total del impuesto.
- percent:
Type: double
Porcentaje del descuento.
- unit_measure_code:
Type: string
Código unidad de medida.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/UnitMeasure.
- per_unit_amount:
Type: double
Valor del tributo por unidad
- base_unit_measure:
Type: double
Medida unidad base.
- withholding_tax_totals:
Type: array object
Totales retenciones.
- tax_code * :
Type: string
Código impuesto.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/Tax.
- percent:
Type: double
Porcentaje.
- tax_amount * :
Type: double
Importe del impuesto
- taxable_amount * :
Type: double
Base imponible.
- information_content_provider_party:
Type: object
Información relativa al mandante.
- identification_number * :
Type: integer
Número de identificación
- identification_type_code:
Type: integer
Código de documento de identidad
- description * :
Type: string
Descripción del artículo o servicio a que se refiere esta línea de la factura.
Nota
Pueden ir separadas por punto y coma si desea multiples descripciones.
- code * :
Type: string
Código interno el producto.
- item_identification_type_code * :
Type: string
Código de identificación del artículo.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/ItemIdentificationType.
- additional_item_properties:
Type: array object
Información específica del ítem que puede ser solicitada por autoridades o entidades diferentes a la DIAN.
- name * :
Type: string
Característica que quiere informar del ítem.
- value * :
Type: string
Valor de la característica que se quiere informar del ítem.
- unit_measure_code:
Type: integer
Default: 94
Código de unidad de medida.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/UnitMeasure.
- value_quantity:
Type: integer($double)
Cantidad del Bien.
- price_amount * :
Type: double
Valor del artículo o servicio.
- base_quantity * :
Type: double
La cantidad real sobre la cual el precio aplica.
- supplier:
Type: object
Emisor del documento
- shareholder * :
Type: array object
Grupo de elementos que permiten registrar la información de los participantes de un Consorcio o Unión temporal.
- partecipation_percent * :
Type: integer
Porcentaje del participante en el consorcio.
- name * :
Type: string
Nombre o Razón Social de participante de consorcio.
- identification_number * :
Type: string
Número de identificación del participante de consorcio.
- dv:
Type: string
Si participante de consorcio está identificado por NIT (31), el DV del NIT debe ser informado.
- identification_type_code * :
Type: string
Identificador del tipo de documento de identidad del participante de consorcio.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/IdentificationType.
- liability_type_code * :
Type: string
Tipo de obligación del participante de consorcio.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/LiabilityType.
- tax_code * :
Type: string
Identificador del tributo del participante de consorcio.
Nota
Ver listado en https://test.endpoint.emision.co/dian-tables/TaxDetail.
Body¶
Contiene los datos mínimos para generar un documento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 { "send": true, "resolution_number": 18760000001, "date": "2024-02-23", "time": "14:10:46", "currency_type_code": "COP", "prefix": "EPOS", "number": 18, "document_type_code": "20", "due_date": "2024-02-23", "operation_type_code": "10", "identification_number": 901285179, "cash_register": { "name": "CJ-1", "ubication": "Almacén", "cashier": "Pedro Infante", "type": "Solo efectivo", "sale_reference": "R-100023S", "subtotal": 25745.44 }, "customer_benefits": { "identification_number": "122233", "name": "Caliche Garcia", "points": 26 }, "software_manufacturer": { "software_developer": "e-Misión", "registration_name": "Nodexum S.A.S", "software_name": "e-Misión Facturación Electrónica" }, "customer": { "identification_type_code": "13", "organization_type_code": "1", "municipality_code": "05615", "regime_type_code": "48", "language_code": "es", "country_code": "CO", "tax_code": "ZZ", "liability_type_code": "R-99-PN", "identification_number": "43764178", "name": "ALEJANDRO ", "phone": 12346567, "address": "MEDELLIN", "email": "correo@emision.co", "merchant_registration": "No tiene", "trade_name": "W.T.Y.D S.A.S" }, "invoice_lines": [ { "unit_measure_code": "WSD", "invoiced_quantity": 5, "line_extension_amount": 99159.66, "free_of_charge_indicator": false, "description": "ACEITE DE OLIVA x 1000 c.c x 15 UND", "code": "010016", "item_identification_type_code": "999", "price_amount": 19831.93, "base_quantity": 1, "reference_price_code": "", "tax_totals": [ { "tax_code": "01", "tax_amount": 18840.34, "percent": 19, "taxable_amount": 99159.66 } ] } ], "tax_totals": [ { "tax_code": "01", "tax_amount": 18840.34, "percent": 19, "taxable_amount": 99159.66 } ], "payment_form": { "payment_form_code": "2", "payment_method_code": "10", "payment_due_date": "2022-12-21", "duration_measure": 1 }, "legal_monetary_totals": { "allowance_total_amount": 0, "line_extension_amount": 99159.66, "tax_exclusive_amount": 99159.66, "tax_inclusive_amount": 118000, "payable_amount": 118000, "charge_total_amount": 0 } }Responses¶
Response
200
OK¶Si el documento ha superado las validaciones y fue enviado a la DIAN.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "status": "success", // Estado de la solicitud. "message": "Documento enviado a la DIAN", // Mensaje sobre el estado de la solicitud. "document": { // Datos generados para el documento contenido en la solicitud. "number": "SEPT900000000", // Prefijo mas consecutivo. "statusCode": 6, // Código para identificar el estado. "statusDescription": "Documento validado exitosamente", // Descripción al código de estado. "uuid": "Cufe", // Cufe generado para el documento NOTA: Este dato es usado a la hora de emitir notas crédito o débito. "zipBase64Bytes": "Xml", // Xml codificado en base64 comprimido en un archivo zip. "pdfBase64Bytes": "Pdf", // Pdf codificado en base64. "appResponseBase64Bytes": "Application response", // XML de la respuesta de la DIAN codificado en base64. "attachedDocumentBase64Bytes"; "Attached document" // XML que contiene el XML de la factura y el APP response. } }Response
422
Unprocessable Entity (WebDAV)¶Si el
body
no cumple con las validaciones, devolverá los errores en un arreglo los cuales deben ser solucionados para poder continuar con el ciclo del documento electrónico.Errores por parte de la DIAN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "status": "error", // Estado de la solicitud. "message": "El documento contiene algunos errores", // Mensaje sobre el estado de la solicitud. "document": { // Datos generados para el documento contenido en la solicitud. "number": "SEPT900000000", // Prefijo mas consecutivo. "statusCode": 11, // Código para identificar el estado. "statusDescription": "Documento validado exitosamente", // Descripción al código de estado. "Errors": [ // Lista de los campos y errores que presenta el documento. "Regla: FAU04, Rechazo: Base Imponible es distinto a la suma de los valores de las bases imponibles de todas líneas de detalle.", "Regla: FAU14, Rechazo: Valor a Pagar de Factura es distinto de la Suma de Valor Bruto más tributos - Valor del Descuento Total + Valor del Cargo Total - Valor del Anticipo Total", "Regla: FAQ07, Notificación: Descuento superior al valor base", "Regla: FAD09c, Notificación: La fecha de emisión fue anterior a 5 días de la fecha actual", "Regla: FAQ09, Notificación: Valor Base para calcular el descuento o cargo superior al valor total de la factura" ] } }Errores por parte e-Misión
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 { "status": "error", // Estado de la solicitud. "message": "El documento contiene algunos errores", // Mensaje sobre el estado de la solicitud. "document": { "number": "SEPT900000000", "statusCode": 13, "statusDescription": "EL documento no supero las validaciones e-Misión", // Descripción al código de estado. "errors": [ // Lista errores que presenta el documento. "El campo customer.country id es obligatorio.", "El campo customer.type regime id es obligatorio.", ], "detailedErrors": { // Lista errores que presenta el documento en cada campo. "customer.country_id": [ // Campo que presenta el error. "El campo customer.country id es obligatorio." // Lista de errores del campo. ], "customer.type_regime_id": [ "El campo customer.type regime id es obligatorio." ] } } }