@facturacr/atv-sdk
Version:
Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.
964 lines • 122 kB
text/xml
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.4/notaDebitoElectronica" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.4/notaDebitoElectronica" elementFormDefault="qualified" attributeFormDefault="unqualified" version="4.4" vc:minVersion="1.1">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="../../xmldsig-core-schema.xsd"/>
<xs:element name="NotaDebitoElectronica">
<xs:annotation>
<xs:documentation>Elemento Raiz de la Nota de Débito</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Clave" type="ClaveType">
<xs:annotation>
<xs:documentation>Corresponde a la clave del comprobante. Es un campo fijo de cincuenta posiciones y se tiene que utilizar para
la consulta del código QR</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ProveedorSistemas">
<xs:annotation>
<xs:documentation>Se debe indicar el número de cedula de identificación del proveedor
de sistemas que esté utilizando para la emisión de comprobantes
electrónicos</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoActividadEmisor">
<xs:annotation>
<xs:documentation>Se debe de indicar el código de la actividad económica inscrita a la
cual corresponde el comprobante que se está generando</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
<xs:minLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoActividadReceptor" minOccurs="0">
<xs:annotation>
<xs:documentation>Se debe de indicar el código de la actividad económica inscrita del
receptor a la cual corresponden los bienes o servicios que se le están
facturando al receptor en caso de ser requerido para un crédito o un
gasto deducible.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
<xs:minLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NumeroConsecutivo" type="NumeroConsecutivoType">
<xs:annotation>
<xs:documentation>Numeración consecutiva del comprobante</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FechaEmision" type="xs:dateTime"/>
<xs:element name="Emisor" type="EmisorType">
<xs:annotation>
<xs:documentation>Emisor del documento</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Receptor" type="ReceptorType" minOccurs="0">
<xs:annotation>
<xs:documentation>Receptor del documento</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CondicionVenta">
<xs:annotation>
<xs:documentation>Condiciones de la venta: 01 Contado, 02 Crédito, 03 Consignación, 04 Apartado, 05 Arrendamiento con opción de compra, 06 Arrendamiento en función financiera, 07 Cobro a favor de un tercero, 08 servicxios prestados al estado a credito, 09 pago del servicio prestado al estado, 10 venta a credito hasta 90 dias,11 pago de venta a credito en IVA hasta 90 dias, 99 Otros</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="01">
<xs:annotation>
<xs:documentation>Contado</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="02">
<xs:annotation>
<xs:documentation>Crédito</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="03">
<xs:annotation>
<xs:documentation>Consignación</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="04">
<xs:annotation>
<xs:documentation>Apartado</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="05">
<xs:annotation>
<xs:documentation>Arrendamiento con opción de compra</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="06">
<xs:annotation>
<xs:documentation>Arrendamiento en función financiera</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="07">
<xs:annotation>
<xs:documentation>Cobro a favor de un tercero</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="08">
<xs:annotation>
<xs:documentation>Servicios prestados al Estado a crédito </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="09">
<xs:annotation>
<xs:documentation>Pago del servicios prestado al Estado </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="10">
<xs:annotation>
<xs:documentation>Venta a crédito en IVA hasta 90 días (Artículo 27, LIVA) </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="11">
<xs:annotation>
<xs:documentation>Pago de venta a crédito en IVA hasta 90 días (Artículo 27, LIVA) </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="12">
<xs:annotation>
<xs:documentation>Venta Mercancía No Nacionalizada</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="13">
<xs:annotation>
<xs:documentation>Venta Bienes Usados No Contribuyente</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="14">
<xs:annotation>
<xs:documentation>Arrendamiento Operativo</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="15">
<xs:annotation>
<xs:documentation>Arrendamiento Financiero</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="99">
<xs:annotation>
<xs:documentation>Otros</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CondicionVentaOtros" minOccurs="0">
<xs:annotation>
<xs:documentation>Será obligatorio en caso de utilizar el código 99 de "Otros" de la nota
5. Se debe describir puntualmente la condición de la venta utilizada.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PlazoCredito" minOccurs="0">
<xs:annotation>
<xs:documentation>Plazo del crédito, es obligatorio cuando la venta del producto o prestación del servicio sea a crédito</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DetalleServicio" minOccurs="0">
<xs:annotation>
<xs:documentation>Detalle del Servicio, Mercancía u otro</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LineaDetalle" maxOccurs="1000">
<xs:annotation>
<xs:documentation>Cada línea del detalle de la mercancia o servicio prestado.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="NumeroLinea">
<xs:annotation>
<xs:documentation>Número de línea del detalle</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="1000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PartidaArancelaria" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
<xs:minLength value="12"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoCABYS" minOccurs="0">
<xs:annotation>
<xs:documentation>Código de Producto/servicio </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="13"/>
<xs:minLength value="13"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoComercial" type="CodigoType" minOccurs="0" maxOccurs="5"/>
<xs:element name="Cantidad">
<xs:annotation>
<xs:documentation>Cantidad</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="16"/>
<xs:fractionDigits value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UnidadMedida" type="UnidadMedidaType">
<xs:annotation>
<xs:documentation>Unidad de medida </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TipoTransaccion" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo se utilizará para identificar el tipo de transacción
que se realizará.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="TipoTransaccionType">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UnidadMedidaComercial" minOccurs="0">
<xs:annotation>
<xs:documentation>Unidad de medida comercial</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Detalle">
<xs:annotation>
<xs:documentation>Detalle de la mercancia transferida o servicio prestado</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200"/>
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="NumeroVINoSerie" minOccurs="0" maxOccurs="1000">
<xs:annotation>
<xs:documentation>Número de VIN o Serie
del medio de transporte</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="17"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="RegistroMedicamento" minOccurs="0">
<xs:annotation>
<xs:documentation>Se refiere al respectivo número de registro del Ministerio de Salud</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FormaFarmaceutica" minOccurs="0">
<xs:annotation>
<xs:documentation>Código de la presentación del medicamento.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DetalleSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Tipo complejo que representa cada línea del detalle de los componentes de un surtido, paquete o combinación de productos. Se debe utilizar exclusivamente cuando en la línea de detalle se está facturando un paquete, surtido o combo, entendido como la combinación de más de dos productos con diferentes códigos de producto/servicio.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LineaDetalleSurtido" maxOccurs="20">
<xs:annotation>
<xs:documentation>Tipo complejo que representa cada línea del detalle del surtido</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CodigoCABYSSurtido">
<xs:annotation>
<xs:documentation>Código de Producto
/Servicio componente de Surtido</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="13"/>
<xs:minLength value="13"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoComercialSurtido" minOccurs="0" maxOccurs="5">
<xs:complexType>
<xs:sequence>
<xs:element name="TipoSurtido">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="2"/>
<xs:enumeration value="01">
<xs:annotation>
<xs:documentation>Código del producto del vendedor</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="02">
<xs:annotation>
<xs:documentation>Código del producto del comprador</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="03">
<xs:annotation>
<xs:documentation>código del producto asignado por la industria</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="04">
<xs:annotation>
<xs:documentation>código de uso interno</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="99">
<xs:annotation>
<xs:documentation>Otros</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoSurtido">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CantidadSurtido">
<xs:annotation>
<xs:documentation>Es un número decimal compuesto por 13 enteros y 3 decimales.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="16"/>
<xs:fractionDigits value="3"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UnidadMedidaSurtido">
<xs:simpleType>
<xs:restriction base="UnidadMedidaType">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UnidadMedidaComercialSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo utilizado para indicar una unidad de medida que nace del propio giro comercial del establecimiento, no es una cantidad estandarizada de una determinada magnitud física, definida y adoptada por convención o por ley ejemplo: "1
Tarima"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DetalleSurtido">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200"/>
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PrecioUnitarioSurtido">
<xs:simpleType>
<xs:restriction base="DecimalDineroType">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MontoTotalSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la multiplicación del campo "Cantidad componente de surtido" por el campo "Precio unitario componente de surtido".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DescuentoSurtido" minOccurs="0" maxOccurs="5">
<xs:annotation>
<xs:documentation>Se puede incluir un máximo de 5 repeticiones de
descuentos, cada descuento adicional se calcula sobre la base menos el descuento anterior.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="MontoDescuentoSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Validación: Se deberá incluir un valor igual o menor al del
"Monto total componente surtido"</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CodigoDescuentoSurtido" type="CodigoDescuentoType">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando se incluya información en el campo "Monto de descuentos concedidos al componente de surtido</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DescuentoSurtidoOtros" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando se utilice el código 99 de la Nota 20
Validación: En caso de utilizarse el código 99, se verificará que este campo se encuentre en el comprobante, caso contrario se rechazará. Además, deberá contener mínimo 3 caracteres y un máximo de 80</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="80"/>
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SubTotalSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la resta del campo "Monto total componente surtido" menos "Monto de descuentos concedidos al componente de surtido"</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IVACobradoFabricaSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>En este campo se indicará si el Impuesto al Valor Agregado fue cobrado a nivel de fábrica, por lo que deberá ser utilizado únicamente por los obligados tributarios a realizar el pago de esta forma.
Se convierte en obligatorio cuando el IVA se cobra o se cobró a nivel de fábrica.
Al hacer uso del presente campo el producto se entenderá exento para el código 02, por lo cual no deberá llenar el subnodo de impuestos para el cálculo del IVA.
▪Para el código 01 el emisor puede separar los impuestos
que está cobrando en la fábrica.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
<xs:minLength value="2"/>
<xs:enumeration value="01">
<xs:annotation>
<xs:documentation>Venta de bienes con IVA según el sistema especial de determinación de IVA a nivel de fábrica (Se utiliza cuando se está cobrando el IVA a nivel de fábrica</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="02">
<xs:annotation>
<xs:documentation>Ventas exentas según el sistema especial de determinación de IVA a nivel de fábrica, mayorista y aduanas (se utiliza cuando el producto se encuentra exento ya que el bien soporto el cobro de impuestos a nivel de fábrica).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BaseImponibleSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando el producto este gravado con algún impuesto. Se obtiene de la suma entre el campo "Subtotal componente del surtido", más el impuesto selectivo de consumo (02), el Impuesto específico de Bebidas Alcohólicas (04) y el Impuesto Específico sobre las bebidas envasadas sin contenido alcohólico y jabones de tocador (05), cuando corresponda. Este campo se podrá editar cuando se seleccione en el campo "IVA cobrado a nivel de fábrica" el Código 01 o en el campo de "Código del impuesto" el código 07. Validación: En caso de utilizarse el código 01, en el campo de IVA cobrado a nivel de fábrica, se verificará que este campo se encuentre en el comprobante, caso contrario se rechazará. Además, se deberá incluir un valor mayor a "cero".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ImpuestoSurtido" maxOccurs="1000">
<xs:complexType>
<xs:sequence>
<xs:element name="CodigoImpuestoSurtido" type="CodigoImpuestoType">
<xs:annotation>
<xs:documentation>Ver nota 8. Es un campo fijo de dos posiciones.
Al utilizar el código de Naturaleza del Descuento 01 correspondiente a "Regalías" o 03 de "Bonificaciones" y el código de impuesto 01, se debe utilizar para el cálculo del impuesto el campo denominado "Monto total componente de surtido" y la "Tarifa del Impuesto al Valor Agregado para componente de surtido"
Validación: Se verificará el cumplimiento de la nota 8</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CodigoImpuestoOTROSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Será obligatorio en caso de utilizar el código 99 de "Otros" de la nota 8. Se debe describir puntualmente el impuesto utilizado.
Validación: Deberá contener mínimo 5 caracteres y un máximo de 100</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
<xs:minLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CodigoTarifaIVASurtido" type="CodigoTarifaIVAType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se convierte en obligatorio cuando se usa el código 01 de impuestos de surtido
Validación: Se verificará el cumplimiento de nota 8.1. cuando se utilice el código 01 de campo código del impuesto.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TarifaSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo es de condición obligatoria, cuando el componente este gravado con alguna tarifa de impuesto, según corresponda. Debe de expresarse el porcentaje como número entero (Ejemplo: la tarifa del 13% se debe de reflejar como 13, la tarifa del 1% como 1, o bien la tarifa del 0.5% como 0.5)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="4"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DatosImpuestoEspecificoSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Datos para Impuestos Específicos para componente de surtido</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CantidadUnidadMedidaSurtido">
<xs:annotation>
<xs:documentation>Cantidad de la unidad de medida a utilizar para componente de surtido. Este campo es de condición obligatoria, cuando se utilicen los códigos de impuesto 04, 05 y 06 de la nota 8</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="7"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PorcentajeSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Porcentaje en componente de surtido. Este campo es de condición obligatoria, cuando se utilice el código de impuesto 04 de la nota 8. Debe de expresarse el porcentaje como número entero (Ejemplo: la tarifa del 13% se debe de reflejar como 13, la tarifa del 1% como 1, o bien la tarifa del 0.5% como 0.5)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="4"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ProporcionSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo es de condición obligatoria, cuando se utilice el código de impuesto 04 de la nota 8
Este campo se obtiene de multiplicar la "Cantidad de la unidad de medida a utilizar" por el "Porcentaje"</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="5"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="VolumenUnidadConsumoSurtido" minOccurs="0">
<xs:annotation>
<xs:documentation>Volumen por Unidad de Consumo componente de surtido. Este campo es de condición obligatoria, cuando se utilice el código de impuesto 05 de la nota 8</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
<xs:totalDigits value="7"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ImpuestoUnidadSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Este campo es de condición obligatoria, cuando se utilicen los códigos de impuesto 04, 05 y 06 de la nota 8</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MontoImpuestoSurtido" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando el componente este gravado con algún impuesto. Es un número decimal compuesto por 13 enteros y 5 decimales</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PrecioUnitario" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Precio Unitario</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MontoTotal" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de multiplicar el campo cantidad por el campo precio unitario</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Descuento" type="DescuentoType" minOccurs="0" maxOccurs="5"/>
<xs:element name="SubTotal" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la resta del campo monto total menos monto de descuento concedido</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IVACobradoFabrica" minOccurs="0">
<xs:annotation>
<xs:documentation>En este campo se indicará si el Impuesto al Valor Agregado fue cobrado a nivel de fábrica, por lo que deberá ser utilizado únicamente por los obligados tributarios a realizar el pago de
esta forma. Se convierte en obligatorio cuando el IVA se cobra o se cobró a nivel de fábrica. Al hacer uso del presente campo el producto se entenderá exento para el código 02, por lo cual no deberá llenar el subnodo de impuestos para el cálculo del IVA. Para el código 01 el emisor puede separar los impuestos
que está cobrando en la fábrica. </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
<xs:minLength value="2"/>
<xs:enumeration value="01">
<xs:annotation>
<xs:documentation>Venta de bienes con IVA según el sistema especial de determinación de IVA a nivel de fábrica (Se utiliza cuando se está cobrando el IVA a nivel de fábrica</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="02">
<xs:annotation>
<xs:documentation>Ventas exentas según el sistema especial de determinación de IVA a nivel de fábrica, mayorista y aduanas (se utiliza cuando el producto se encuentra exento ya que el bien soporto el cobro de impuestos a nivel de fábrica).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="BaseImponible" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Base imponible especial</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Impuesto" type="ImpuestoType" maxOccurs="1000">
<xs:annotation>
<xs:documentation>Cuando el producto o servicio este gravado con algún impuesto se debe indicar cada uno de ellos.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ImpuestoAsumidoEmisorFabrica" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Impuestos Asumidos por el Emisor o cobrado a Nivel de Fábrica</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ImpuestoNeto" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Este monto se obtiene al restar el campo “Monto del Impuesto” menos “Monto del Impuesto Exonerado” o el
campo “Impuestos Asumidos por el Emisor o cobrado a Nivel de Fábrica” cuando corresponda.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MontoTotalLinea" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se calcula de la siguiente manera:
se obtiene de la sumatoria de los campos “Subtotal”, “Impuesto Neto”.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OtrosCargos" type="OtrosCargosType" minOccurs="0" maxOccurs="15">
<xs:annotation>
<xs:documentation>Información sobre otros cargos</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ResumenFactura">
<xs:complexType>
<xs:sequence>
<xs:element name="CodigoTipoMoneda" type="CodigoMonedaType"/>
<xs:element name="TotalServGravados" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total de los servicios gravados con IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalServExentos" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total de los servicios exentos de IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalServExonerado" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total servicios exonerados del IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalServNoSujeto" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando se seleccionen códigos CAByS que correspondan a un servicio y el servicio sea No Sujeto de IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalMercanciasGravadas" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total mercancias gravadas con IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalMercanciasExentas" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total mercancias exentas de IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalMercExonerada" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total mercancías exoneradas del IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalMercNoSujeta" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo será de condición obligatoria, cuando se seleccionen códigos CAByS que correspondan a una mercancía y la mercancía sea No Sujeta de IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalGravado" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total gravado. se obtiene de la suma del total servicios gravados con IVA + total mercancias gravadas con IVA</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalExento" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total Exento, se obtiene de la suma de los campos total servicios exentos IV mas total mercancias exentas IV</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalExonerado" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se obtiene de la suma de los campos “total servicios exonerados de IVA” mas “total de mercancías exoneradas del IVA”.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalNoSujeto" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se obtiene de la suma de los campos “Total servicios No Sujetos de IVA” mas “Total mercancías No Sujetas de IVA”.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalVenta" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la sumatoria de los campos “total gravado”, “total exento”, “Total Exonerado” y “Total No Sujeto”.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalDescuentos" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se obtiene de la suma de todos los campo de monto de descuento concedido</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalVentaNeta" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la resta de los campos total venta menos total descuento</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalDesgloseImpuesto" minOccurs="0" maxOccurs="1000">
<xs:annotation>
<xs:documentation>Tipo complejo que contiene los montos desglosados por impuesto cobrado en el comprobante electrónico.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Codigo" type="CodigoImpuestoType">
<xs:annotation>
<xs:documentation>Indicará los códigos de impuesto registrados en las líneas de detalle.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CodigoTarifaIVA" type="CodigoTarifaIVAType" minOccurs="0"/>
<xs:element name="TotalMontoImpuesto" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la sumatoria del monto por código de impuesto cobrado en el comprobante electrónico</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TotalImpuesto" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se obtiene de la suma de todos campos monto del impuesto</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalImpAsumEmisorFabrica" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Este campo es de condición obligatoria, cuando existen producto/servicio gravados con algún impuesto en las líneas de detalle que sean asumidos por el emisor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalIVADevuelto" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>IVA Devuelto</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TotalOtrosCargos" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Total Otros Cargos </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MedioPago" minOccurs="0" maxOccurs="4">
<xs:complexType>
<xs:sequence>
<xs:element name="TipoMedioPago" minOccurs="0">
<xs:annotation>
<xs:documentation>Corresponde al medio de pago empleado: 01 - Efectivo, 02 - Tarjeta, 03 - Cheque, 04 - Transferencia - depósito bancario, 05 - Recaudado por terceros, 06 - SINPE MOVIL, 07 - Plataforma Digital, 99 - Otros</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="01">
<xs:annotation>
<xs:documentation>Efectivo</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="02">
<xs:annotation>
<xs:documentation> Tarjeta</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="03">
<xs:annotation>
<xs:documentation>Cheque</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="04">
<xs:annotation>
<xs:documentation>Transferencia - depósito bancario</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="05">
<xs:annotation>
<xs:documentation>Recaudado por terceros</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="06">
<xs:annotation>
<xs:documentation>SINPE MOVIL</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="07">
<xs:annotation>
<xs:documentation>Plataforma Digital</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="99">
<xs:annotation>
<xs:documentation>Otros</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MedioPagoOtros" minOccurs="0">
<xs:annotation>
<xs:documentation>Será obligatorio en caso de utilizar el código 99 de “Otros” de la nota 6. Se debe describir puntualmente el medio de pago utilizado</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="3"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TotalMedioPago" type="DecimalDineroType" minOccurs="0">
<xs:annotation>
<xs:documentation>Se deberá detallar el monto correspondiente al tipo de pago seleccionado. Se volverá obligatorio cuando se utilice más de un medio de pago.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TotalComprobante" type="DecimalDineroType">
<xs:annotation>
<xs:documentation>Se obtiene de la suma de los campos “total venta neta”, “monto total del impuesto” y “total otros cargos” menos “total IVA devuelto”, en caso de contar con dichos campos.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InformacionReferencia" maxOccurs="10">
<xs:complexType>
<xs:sequence>
<xs:element name="TipoDocIR" type="TipoDocReferenciaType">
<xs:annotation>
<xs:documentation>Tipo de documento de referencia </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TipoDocRefOTRO" minOccurs="0">
<xs:annotation>
<xs:documentation>Será obligatorio en caso de utilizar el código 99 de “Otros” de la nota 10. Se debe describir puntualmente el tipo de documento utilizado</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Numero" minOccurs="0">
<xs:annotation>
<xs:documentation>Clave numérica del comprobante electrónico o consecutivo del documento de referencia</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FechaEmisionIR" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Fecha de emisión del documento de referencia</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Codigo" type="CodigoReferenciaType" minOccurs="0">
<xs:annotation>
<xs:documentation>Código de referencia. 01 Anula documento de referencia, 02 Corrige texto de documento de referencia, 04 Referencia a otro documento, 05 Sustituye comprobante provisional por contigencia, 99 Otros</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CodigoReferenciaOTRO" minOccurs="0">
<xs:annotation>
<xs:documentation>Será obligatorio en caso de utilizar el código 99 de “Otros” de la nota 9. Se debe describir puntualmente el código de referencia utilizado</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Razon" minOccurs="0">
<xs:annotation>
<xs:documentation>Razón de referencia</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="180"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Otros" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="OtroTexto" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Elemento opcional que se puede utilizar para almacenar texto.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="restrictedString">
<xs:attribute name="codigo" type="xs:string">
<xs:annotation>
<xs:documentation>Código opcional para facilitar la identificación del elemento.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="OtroContenido" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:doc