TRANSPORTE#
Conjunto de campos destinado a la facturación de servicios de transporte nacional, ya sea de carga o de pasajeros, por las siguientes vías:
Terrestre
Aérea
Marítima
Este grupo de datos permite documentar correctamente las operaciones de transporte según el tipo de servicio prestado.
1. OperationType (TRANSPORTE)
Invoice.OperationType
/Invoice/cbc:CustomizationID
Un documento de venta será reconocido como TRANSPORTE si el valor del OperationType es igual a “12”.
2. AcceptanceNumber (TRANSPORTE)
Invoice.Lines.Transport.AcceptanceNumber
/Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value/
Número Radicado de Aceptación de la Remesa: Este es un consecutivo único nacional que controla el RNDC (Registro Nacional Despacho de Carga) y que se le entrega a la empresa de transporte en señal de aceptación de que los datos enviados no tienen errores.
3. Number (TRANSPORTE)
Invoice.Lines.Transport.Number
/Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value/
Número de Remesa: Este es un consecutivo interno que lleva cada empresa de transporte.
El RNDC no controla rangos. La empresa puede manejar prefijos.
Es un dato alfanumérico de hasta 15 caracteres.
4. Quantity (TRANSPORTE)
Invoice.Lines.Transport.Quantity
/Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:ValueQuantity/
Cantidad transportada: Es un dato numérico sin decimales.
5. MeasureUnit (TRANSPORTE)
Invoice.Lines.Transport.MeasureUnit
/Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:ValueQuantity/ @unitcode
Las unidades de medida se especifican por los términos “GLL” (Galones) y “KGM” (Kilogramos).
El listado de los tipos de Measure Unit están disponibles en el método del WEB API de Saphety: MeasureUnit.
6. Value (TRANSPORTE)
Invoice.Lines.Transport.Value
/Invoice/cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value/
Las unidades de medida se especifican por los términos “GLL” (Galones) y “KGM” (Kilogramos).
Se debe informar elemento cuando el elemento CustomizationID = “12”. Se debe informar la cantidad real entregada de la mercancía de la remesa Valor flete.
7. ServiceType (TRANSPORTE)
Invoice.Lines.Transport.ServiceType
/Invoice/cac:InvoiceLine/cbc:ID@schemeID/
Obligatorio si el documento es de tipo TRANSPORTE se deberá reportar el código “0” o “1” Sen todas las líneas:
0 = Servicio Adicional.
1 = Remesa de Transporte registrada en el RNDC.
DTO TRANSPORTE#
JSON (DTO) - TRANSPORTE
{
"Currency": "COP",
"SeriePrefix": "SETP",
"SerieNumber": "990045578",
"IssueDate": "2023-11-27T12:12:12",
"DueDate": "2023-11-27T12:12:12",
"DeliveryDate": "2023-11-27T12:12:12",
"CorrelationDocumentId": "POSTMAN-{{$timestamp}}",
"SerieExternalKey": "{{serieexternalkeyFV}}",
"IssuerParty": {
"Identification": {
"DocumentNumber": "{{nit}}",
"DocumentType": "NIT",
"CountryCode": "CO",
"CheckDigit": "{{digitoverificacion}}"
}
},
"OperationType": "12", /*Tipo de operación para Trasporte*/
"DeliveryTerms": { /*Seccion Trasporte - Opcional*/
"SpecialTerms": "Portes Debidos", /*Campo Trasporte - indicar cómo se pagan los costes del transporte (Texto libre)- Opcional*/
"IncotermCode": "CFR" /*Campo Trasporte Opcional*/ //https://api-factura-electronica-co-qa.saphety.com/v2/dataelements/incoterms//LossRiskResponsibilityCode
},
"PaymentMeans": [
{
"Code": "20",
"Mean": "1",
"DueDate": "2023-11-27"
}
],
"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"
}
},
"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",
"RoundingAmount": "0.00"
}
],
"UnitPrice": "115000.00",
"GrossAmount": "115000.00",
"NetAmount": "115000.00",
"Item": {
"Gtin": "987654321",
"Description": "Descripcion del producto o servicio"
},
/*"TransportServiceType": "0", Campo Trasporte 0 = Servicio Adicional - 1 = Remesa de Transporte registrada en el RNDC*/
"Transport": { /* Trasporte */
"AcceptanceNumber": "123456", /* Trasporte: Número Radicado de Aceptación de la Remesa*/
"Number": "98765", /* Trasporte: Número de Remesa*/
"Quantity": "999999999", /* Trasporte: Cantidad transportada */
"MeasureUnit": "GLL", /* Trasporte: Unidad de Medida de la cantidad transportada GLL = gallon (US) ,KGM = kilogram - Https://api-factura-electronica-co-qa.saphety.com/v2/dataelements/unitsofmeasuresimplified*/
"Value": "888888888", /* Trasporte: Valor flete*/
"ServiceType": "0" /* Trasporte: tipo de servicio de trasporte 0 = Servicio Adicional - 1 = Remesa de Transporte registrada en el RNDC https://api-factura-electronica-co-qa.saphety.com/v2/dataelements/transportservicetypes*/
}
}
],
"TaxSubTotals": [
{
"TaxCategory": "01",
"TaxPercentage": "19.00",
"TaxableAmount": "115000.00",
"TaxAmount": "21850.00"
}
],
"TaxTotals": [
{
"TaxCategory": "01",
"TaxAmount": "21850.00",
"RoundingAmount": "0.00"
}
],
"Total": {
"GrossAmount": "115000.00",
"TotalBillableAmount": "136850.00",
"PayableAmount": "136850.00",
"TaxableAmount": "115000.00"
}
}
Important
Ten en cuenta los siguientes campos dentro de la sección Total del JSON:
GrossAmount: Corresponde a la sumatoria de los valores netos de las líneas de detalle ∑ (Lines.NetAmount). Como se explica en la tabla anterior, si el NetAmount dentro de una línea de producto o servicio es 0 (por ejemplo, en muestras o regalos comerciales), este valor debe reflejarse adecuadamente en la sumatoria.
TotalBillableAmount: En este campo se registra el valor bruto de la factura, calculado como: GrossAmount + ∑ (Line.TaxTotals.TaxAmount). Si el GrossAmount es 0, se debe reportar únicamente la sumatoria del valor total de los impuestos de las líneas (productos o servicios).
PayableAmount: Partiendo del valor obtenido en TotalBillableAmount, el cálculo se realiza mediante la siguiente fórmula: PayableAmount = TotalBillableAmount – Descuentos Globales (AllowancesTotalAmount) + Cargos Globales (ChargesTotalAmount). Es importante verificar si existen descuentos o recargos globales y aplicarlos correctamente en la fórmula.
TaxableAmount: Representa la sumatoria de todas las bases gravables de los servicios o productos, calculada de la siguiente manera: Total.TaxableAmount = ∑ (TaxSubTotals.TaxableAmount) — aplicado a nivel de factura.