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.

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.

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.

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.

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 especificada payment_exchange_rate.currency_type_code.

currency_type_code * :

type: string

Código del tipo moneda a la cual se hace la conversión.

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).

organization_type_code:

Type: string

Código de tipo de organización (asociado a persona natural, persona jurídica).

language_code:

Type: string

Default: es

Código de idioma.

country_code:

Type: string

Código de país.

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.

tax_code:

Type: string

Código de impuesto (Identificador del tributo del adquirente).

liability_type_code:

Type: string

Código de responsabilidad.

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.

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.

payment_method_code * :

Type: string

Código del método de pago.

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.

payment_method_code * :

Type: string

Código del método de pago.

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 el legal_monetary_totals

discount_code:

Type: string

Código de descuento.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

liability_type_code * :

Type: string

Tipo de obligación del participante de consorcio.

tax_code * :

Type: string

Identificador del tributo del participante de consorcio.

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."
            ]
        }
    }
}