Documento Equivalente Tiquete P.O.S (Estándar)#
El Documento Equivalente es un documento que soporta las transacciones de venta de bienes y/o servicios por un valor inferior a cinco (5) UVT, el cual, a través de SOVOS Saphety en calidad de Proveedor Tecnológico autorizado por la DIAN, permite realizar la generación, trasmisión para validación, validación y expedición del documento de acuerdo con los requisitos y definiciones legales del anexo técnico vigente regulado por DIAN.
Note
Qué es P.O.S Point of Sale o punto de venta, es una solución de facturación para puntos de venta que consta de hardware y software. Permite generar un documento similar a una factura, pero no cumple con todos los requisitos necesarios para ser considerado una factura completa (el documento que genera no tiene todas las características de una factura legalmente válida.), ya que no incluye la identificación del cliente.
A continuación, se describe los métodos y estructuras para la creación de un Documento Equivalente Electrónico.
Creación de un Documento Equivalente (DE).#
Para hacer el consumo de la API se deben tener en cuenta en que entorno se va a trabajar, SOVOS Saphety cuenta con dos ambientes especificados en el apartado de Entornos.
Consumo del método de creación.#
El Verbo Http (acción) que se utiliza para la creación de este documento es:
POST
El método que se utiliza para la creación de este documento es:
/v2/{virtualOperator}/outbounddocuments/posEquivalentDocumentAsync
Para esta petición se requiere como parámetro el alias de su operador virtual.
Parametro virtualOperator
Recuerde reemplazar en el método el parámetro {virtualOperator} con el alias de su operador virtual en minúsculas, por defecto el alias es “saphety”.
Body#
Estructura del mensaje JSON de un Documento Equivalente Electrónico.#
A continuación encontrara la estructura Base definida por Saphety para la creación de un Documento Equivalente Electrónico.
JSON (DTO)
{
"IssueDate": "2024-07-02T15:43:09.958Z",
"DueDate": "2024-07-02T15:43:09.958Z", //*
"DeliveryDate": "2024-07-02T15:43:09.958Z", //*
"Currency": "COP",
"SeriePrefix": "EPOS", //**
"SerieNumber": "211", //**
"OperationType": "10",
"SerieExternalKey": "djw/8fUBU2",
"CorrelationDocumentId": "POSTMAN-{{$timestamp}}",
"PaymentMeans": [
{
"Code": "20",
"Mean": "1",
"DueDate": "2023-11-27"
}
],
"IssuerParty": {
"Identification": {
"DocumentNumber": "{{nit}}",
"DocumentType": "NIT",
"CountryCode": "CO",
"CheckDigit": "{{digitoverificacion}}"
}
},
"CustomerParty": {
"LegalType": "Legal",
"Email": "correo@sovos.com",
"TaxScheme": "ZZ",
"ResponsabilityTypes": [
"R-99-PN"
],
"Identification": {
"DocumentNumber": "{{nit}}",
"DocumentType": "NIT",
"CountryCode": "CO",
"CheckDigit": "{{digitoverificacion}}"
},
"Name": "Saphety Transacciones Electrónicas S.A.S",
"Address": {
"DepartmentCode": "11",
"CityCode": "11001",
"AddressLine": "Calle 97a No. 9 - 45",
"Country": "CO"
}
},
"BuyerBenefits": { // Extensión Información Beneficios del Comprador
"BuyerIdentificationDocumentNumber": "900606963", // Valor de la característica que se quiere informar (Código del comprador).
"BuyerIdentificationName": "Saphety Transacciones Electrónicas S.A.S", // Valor de la característica que se quiere informar (Nombres y apellidos del comprador).
"Points": "200" // Valor de la característica que se quiere informar (Cantidad de Puntos acumulados por el comprador).
},
"POSInformation": { // Extensión Información de la Caja de Venta
"InventoryBoxPlate": " PV123", //Valor de la característica que se quiere informar (Placa de inventario de la Caja).
"InventoryBoxLocation": "Entrada1", //Valor de la característica que se quiere informar (Ubicación de la caja ALMACEN).
"VendorName": "John Doe", //Valor de la característica que se quiere informar (nombres y apellidos del cajero o vendedor).
"InventoryBoxType": "Caja Rapida", //Valor de la característica que se quiere informar (Tipo de Caja).
"SalesCode": "SC00001", //Valor de la característica que se quiere informar (Código de la Venta).
"SalesSubTotal": " 136850.00" //Valor de la característica que se quiere informar (Subtotal de la venta).
},
"SoftwareMaker": {
"LegalName": "string",
"NameAndLastname": "string",
"SoftwareName": "string"
},
"Lines": [
{
"Number": "1",
"Quantity": "1",
"QuantityUnitOfMeasure": "NAR",
"TaxSubTotals": [
{
"TaxCategory": "01",
"TaxPercentage": "19.00",
"TaxableAmount": "115000.00",
"TaxAmount": "21850.00"
}
],
"TaxTotals": [
{
"TaxCategory": "01",
"TaxAmount": "21850.00"
}
],
"UnitPrice": "115000.00",
"GrossAmount": "115000.00",
"NetAmount": "115000.00",
"Item": {
"Gtin": "987654321",
"Description": "Descripcion del producto o servicio"
}
}
],
"Notes": [
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. "
],
"TaxSubTotals": [
{
"TaxCategory": "01",
"TaxPercentage": "19.00",
"TaxableAmount": "115000.00",
"TaxAmount": "21850.00"
}
],
"TaxTotals": [
{
"TaxCategory": "01",
"TaxAmount": "21850.00"
}
],
"Total": {
"GrossAmount": "115000.00",
"TotalBillableAmount": "136850.00",
"PayableAmount": "136850.00",
"TaxableAmount": "115000.00",
"AllowancesTotalAmount": "0.00",
"ChargesTotalAmount": "0.00",
"PrePaidTotalAmount": "0.00"
},
"PrepaidPayments": [
{
"PaidDate": "2023-11-27",
"PaidAmount": "0.00"
}
],
"AllowanceCharges": [
{
"ChargeIndicator": "false",
"BaseAmount": "100000.00",
"ReasonCode": "00 ",
"Reason": "Discount",
"Amount": "0.00",
"Percentage": "0",
"SequenceIndicator": "1"
},
{
"ChargeIndicator": "true",
"BaseAmount": "100000.00",
"ReasonCode": "00",
"Reason": "charge",
"Amount": "0.00",
"Percentage": "0.00",
"SequenceIndicator": "2"
}
]
}
Terminos importantes
Encontrará los siguientes términos, los cuales le ayudaran a identificar la estructura del mensaje JSON y la información que se debe enviar en cada campo:
A nivel global del documento equivalente: Datos generales del documento equivalente (Consecutivo del documento, medios y formas de pago, total a pagar, impuestos globales, descuentos globales, fecha emisión de la factura, etc.).
A nivel de línea: Datos que detallan los productos o servicios del documento equivalente (valor unitario, impuestos, descuentos, retenciones, etc).
Emisor: Datos que hacen referencia al Emisor del documento equivalente.
Adquiriente: Datos que hacen referencia a la persona natural o Jurídica que se le emite el documento (Cliente).
Respuesta#
{
"IsValid": true,
"Warnings": [],
"Errors": [],
"ResultData": "a17bf0a2-8345-4d28-951b-fcfbdb89d50d",
"ResultCode": 200
}
{
"IsValid": false,
"Warnings": [],
"Errors": [
{
"Field": "POSEquivalentDocument.SerieExternalKey",
"Code": "Invalid",
"Description": "The value [{{serieexternalkeyDE}}] is not a valid [SerieExternalKey].",
"ExplanationValues": [
"^([A-Z]|[a-z]|[0-9]|\\+|\/){10}$"
]
}
],
"ResultData": "00000000-0000-0000-0000-000000000000",
"ResultCode": 400
}
Referencia: Swagger#
Si quieres más información dirígete a Swagger que es el modelo del API de SOVOS Saphety, para el ambiente de QA https://api-factura-electronica-co-qa.saphety.com/swagger/index.html y para el ambiente de producción https://api-factura-electronica-co.saphety.com/swagger/index.html