cfdibills.schemas.cfdi33.CFDI33
- class cfdibills.schemas.cfdi33.CFDI33(*, version: Literal['3.3'], serie: str = None, folio: str = None, fecha: datetime.datetime, sello: str, forma_pago: cfdibills.schemas.catalogs.FormaPago = None, no_certificado: cfdibills.schemas.cfdi33.ConstrainedStrValue, certificado: str, condiciones_de_pago: str = None, sub_total: cfdibills.schemas.fields.ConstrainedDecimalValue, descuento: cfdibills.schemas.fields.ConstrainedDecimalValue = Decimal('0'), moneda: cfdibills.schemas.catalogs.Moneda, tipo_cambio: cfdibills.schemas.fields.ConstrainedDecimalValue = None, total: cfdibills.schemas.fields.ConstrainedDecimalValue, tipo_de_comprobante: cfdibills.schemas.catalogs.TipoDeComprobante, metodo_pago: cfdibills.schemas.catalogs.MetodoDePago = None, lugar_expedicion: str, confirmacion: str = None, cfdi_relacionados: cfdibills.schemas.cfdi33.CfdiRelacionados = None, emisor: cfdibills.schemas.cfdi33.Emisor, receptor: cfdibills.schemas.cfdi33.Receptor, conceptos: List[cfdibills.schemas.cfdi33.Concepto], impuestos: cfdibills.schemas.cfdi33.ImpuestosCFDI = None, complemento: List[Union[cfdibills.schemas.complementos.TimbreFiscalDigital, cfdibills.schemas.complementos.Aerolineas, cfdibills.schemas.complementos.CertificadoDeDestruccion, cfdibills.schemas.complementos.ComercioExterior, Dict]] = [], addenda: Dict = None)[source]
Bases:
pydantic.main.BaseModel,cfdibills.schemas.mixins.CFDIMixinSchema of a CFDI version 3.3.
Based on:
https://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI/tdCFDI.xsd
https://www.sat.gob.mx/sitio_internet/cfd/catalogos/catCFDI.xsd
- __init__(**data: Any) None
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Methods
__init__(**data)Create a new model by parsing and validating input data from keyword arguments.
construct([_fields_set])Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.
copy(*[, include, exclude, update, deep])Duplicate a model, optionally choose which fields to include, exclude and change.
dict(*[, include, exclude, by_alias, ...])Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
from_orm(obj)get_complemento(complemento_type)Retrieves the complemento of type
complemento_type.get_total_transferred_tax(tax_type)Computes the total tax transferred (from
impuestos.traslados) of typetax_type.get_total_withheld_tax(tax_type)Computes the total tax get_total_withheld_tax (from
impuestos.retenciones) of typetax_type.json(*[, include, exclude, by_alias, ...])Generate a JSON representation of the model, include and exclude arguments as per dict().
parse_file(path, *[, content_type, ...])parse_obj(obj)parse_raw(b, *[, content_type, encoding, ...])schema([by_alias, ref_template])schema_json(*[, by_alias, ref_template])update_forward_refs(**localns)Try to update ForwardRefs on fields based on this Model, globalns and localns.
validate(value)Attributes
Nodo opcional donde se incluye el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.
Atributo requerido con valor prefijado a 3.3 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.
Atributo opcional para precisar la serie para control interno del contribuyente.
Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.
Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet.
Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea vigente.
Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante.
Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo con el acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.
Atributo requerido que sirve para incorporar el certificado de sello digital que ampara al comprobante, como texto en formato base 64.
Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet.
Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto.
Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos.
Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN.
Atributo condicional para representar el tipo de cambio conforme con la moneda usada.
Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos.
Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.
Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF
Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).
Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos.
Nodo opcional para precisar la información de los comprobantes relacionados.
Nodo requerido para expresar la información del contribuyente emisor del comprobante.
Nodo requerido para precisar la información del contribuyente receptor del comprobante
Nodo requerido para listar los conceptos cubiertos por el comprobante.
Nodo condicional para expresar el resumen de los impuestos aplicables.
Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente.
- addenda: Optional[Dict]
Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato origen.
- certificado: str
Atributo requerido que sirve para incorporar el certificado de sello digital que ampara al comprobante, como texto en formato base 64.
- cfdi_relacionados: Optional[cfdibills.schemas.cfdi33.CfdiRelacionados]
Nodo opcional para precisar la información de los comprobantes relacionados.
- complemento: List[Union[cfdibills.schemas.complementos.TimbreFiscalDigital, cfdibills.schemas.complementos.Aerolineas, cfdibills.schemas.complementos.CertificadoDeDestruccion, cfdibills.schemas.complementos.ComercioExterior, Dict]] = []
Nodo opcional donde se incluye el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.
- conceptos: List[cfdibills.schemas.cfdi33.Concepto]
Nodo requerido para listar los conceptos cubiertos por el comprobante.
- condiciones_de_pago: Optional[str]
Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos.
- confirmacion: Optional[str]
Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.
- classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model
Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values
- copy(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, update: DictStrAny = None, deep: bool = False) Model
Duplicate a model, optionally choose which fields to include, exclude and change.
- Parameters
include – fields to include in new model
exclude – fields to exclude from new model, as with values this takes precedence over include
update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data
deep – set to True to make a deep copy of the model
- Returns
new model instance
- descuento: cfdibills.schemas.fields.ConstrainedDecimalValue
Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos. No se permiten valores negativos. Se debe registrar cuando existan conceptos con descuento.
- dict(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny
Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
- emisor: cfdibills.schemas.cfdi33.Emisor
Nodo requerido para expresar la información del contribuyente emisor del comprobante.
- fecha: datetime.datetime
Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet. Se expresa en la forma AAAA-MM-DDThh:mm:ss y debe corresponder con la hora local donde se expide el comprobante.
- folio: Optional[str]
Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.
- forma_pago: Optional[cfdibills.schemas.catalogs.FormaPago]
Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante. Si no se conoce la forma de pago este atributo se debe omitir.
- get_complemento(complemento_type: Type[cfdibills.schemas.complementos.AnyComplementoType]) cfdibills.schemas.complementos.AnyComplementoType
Retrieves the complemento of type
complemento_type.- Parameters
complemento_type (Type[AnyComplementoType]) – Type of complemento to find.
- Returns
Complemento found in this CFDI of type
complemento_type- Return type
AnyComplementoType
- Raises
ComplementoNotFoundError – When the CFDI doesn’t contain a complemento of type
complemento_type
- get_total_transferred_tax(tax_type: cfdibills.schemas.catalogs.Impuesto) float
Computes the total tax transferred (from
impuestos.traslados) of typetax_type.- Parameters
tax_type (Impuesto) – Type of tax to sum.
- Returns
Sum of all the transferred taxes of type
tax_type.- Return type
float
- get_total_withheld_tax(tax_type: cfdibills.schemas.catalogs.Impuesto) float
Computes the total tax get_total_withheld_tax (from
impuestos.retenciones) of typetax_type.- Parameters
tax_type (Impuesto) – Type of tax to sum.
- Returns
Sum of all the withheld taxes of type
tax_type.- Return type
float
- impuestos: Optional[cfdibills.schemas.cfdi33.ImpuestosCFDI]
Nodo condicional para expresar el resumen de los impuestos aplicables.
- json(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode
Generate a JSON representation of the model, include and exclude arguments as per dict().
encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().
- lugar_expedicion: str
Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).
- metodo_pago: Optional[cfdibills.schemas.catalogs.MetodoDePago]
Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF
- moneda: cfdibills.schemas.catalogs.Moneda
Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN. Conforme con la especificación ISO 4217.
- no_certificado: str
Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo con el acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.
- receptor: cfdibills.schemas.cfdi33.Receptor
Nodo requerido para precisar la información del contribuyente receptor del comprobante
- sello: str
Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea vigente. El sello debe ser expresado como una cadena de texto en formato Base 64.
- serie: Optional[str]
Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres
- sub_total: cfdibills.schemas.fields.ConstrainedDecimalValue
Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto. No se permiten valores negativos.
- tipo_cambio: Optional[cfdibills.schemas.fields.ConstrainedDecimalValue]
Atributo condicional para representar el tipo de cambio conforme con la moneda usada. Es requerido cuando la clave de moneda es distinta de MXN y de XXX. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo moneda. Si el valor está fuera del porcentaje aplicable a la moneda tomado del catálogo c_Moneda, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion.
- tipo_de_comprobante: cfdibills.schemas.catalogs.TipoDeComprobante
Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.
- total: cfdibills.schemas.fields.ConstrainedDecimalValue
Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos. Si el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion. No se permiten valores negativos.
- classmethod update_forward_refs(**localns: Any) None
Try to update ForwardRefs on fields based on this Model, globalns and localns.
- version: Literal['3.3']
Atributo requerido con valor prefijado a 3.3 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.