Documentation ¶
Overview ¶
Package cfdi implements the conversion from GOBL to CFDI XML
Index ¶
- Constants
- Variables
- func Stamp(env *gobl.Envelope, sd *StampData, doc *Document) error
- type CFDIRelacionado
- type CFDIRelacionados
- type Concepto
- type ConceptoImpuestos
- type Conceptos
- type Document
- type ECCConcepto
- type ECCTraslado
- type Emisor
- type EstadoDeCuentaCombustible
- type Impuesto
- type Impuestos
- type Receptor
- type Retenciones
- type Signature
- type StampData
- type Traslados
- type VDConcepto
- type ValesDeDespensa
Constants ¶
const ( CFDINamespace = "http://www.sat.gob.mx/cfd/4" CFDISchemaLocation = "http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd" XSINamespace = "http://www.w3.org/2001/XMLSchema-instance" CFDIVersion = "4.0" )
CFDI schema constants
const ( FakeNoCertificado = "00000000000000000000" ExportacionNoAplica = "01" FormaPagoPorDefinir = "99" ImpuestoIVA = "002" )
Hard-coded values for (yet) unsupported mappings
const ( MetodoPagoUnaExhibicion = "PUE" MetodoPagoParcialidades = "PPD" )
MetodoPago definitions
const ( NombreReceptorGenerico = "PÚBLICO EN GENERAL" RegimenFiscalSinObligaciones = "616" // no tax obligations UsoCFDISinEfectos = "S01" // no tax effects )
Generic supplier constants
const ( TipoFactorTasa = "Tasa" TipoFactorCuota = "Cuota" // Not supported TipoFactorExento = "Exento" )
TipoFactor definitions.
const ( ObjetoImpNo = "01" // not subject to tax ObjetoImpSi = "02" // subject to tax )
Subject to tax constants
const ( VDVersion = "1.0" VDTipoOperacion = "monedero electrónico" VDNamespace = "http://www.sat.gob.mx/valesdedespensa" VDSchemaLocation = "http://www.sat.gob.mx/sitio_internet/cfd/valesdedespensa/valesdedespensa.xsd" )
VD Schema constants
const ( ECCVersion = "1.2" ECCTipoOperacion = "Tarjeta" ECCNamespace = "http://www.sat.gob.mx/EstadoDeCuentaCombustible12" ECCSchemaLocation = "http://www.sat.gob.mx/sitio_internet/cfd/EstadoDeCuentaCombustible/ecc12.xsd" )
ECC Schema constants
Variables ¶
var ErrNotSupported = errors.New("not supported")
ErrNotSupported is returned when the conversion of the invoice is not supported
Functions ¶
Types ¶
type CFDIRelacionado ¶ added in v0.12.0
type CFDIRelacionado struct {
UUID string `xml:",attr"`
}
CFDIRelacionado stores the data of a preceding CFDI document
type CFDIRelacionados ¶ added in v0.12.0
type CFDIRelacionados struct { TipoRelacion string `xml:",attr"` CfdiRelacionado []CFDIRelacionado `xml:"cfdi:CfdiRelacionado"` }
CFDIRelacionados list the preceding CFDI documents (e.g., the preceding invoices of a credit note)
type Concepto ¶
type Concepto struct { ClaveProdServ string `xml:",attr"` Cantidad string `xml:",attr"` ClaveUnidad string `xml:",attr"` Descripcion string `xml:",attr"` // nolint:misspell ValorUnitario string `xml:",attr"` Importe string `xml:",attr"` Descuento string `xml:",attr,omitempty"` ObjetoImp string `xml:",attr"` Impuestos *ConceptoImpuestos `xml:"cfdi:Impuestos,omitempty"` }
Concepto stores an invoice line data
type ConceptoImpuestos ¶ added in v0.23.0
type ConceptoImpuestos struct { Traslados *Traslados `xml:"cfdi:Traslados,omitempty"` Retenciones *Retenciones `xml:"cfdi:Retenciones,omitempty"` }
ConceptoImpuestos store the line tax totals
type Conceptos ¶
type Conceptos struct {
Concepto []*Concepto `xml:"cfdi:Concepto"`
}
Conceptos list invoice lines nolint:misspell
type Document ¶
type Document struct { XMLName xml.Name `xml:"cfdi:Comprobante"` CFDINamespace string `xml:"xmlns:cfdi,attr"` XSINamespace string `xml:"xmlns:xsi,attr"` ECCNamespace string `xml:"xmlns:ecc12,attr,omitempty"` VDNamespace string `xml:"xmlns:valesdedespensa,attr,omitempty"` SchemaLocation string `xml:"xsi:schemaLocation,attr"` Version string `xml:"Version,attr"` TipoDeComprobante string `xml:",attr"` Serie string `xml:",attr,omitempty"` Folio string `xml:",attr,omitempty"` Fecha string `xml:",attr"` LugarExpedicion string `xml:",attr"` SubTotal string `xml:",attr"` Descuento string `xml:",attr,omitempty"` Total string `xml:",attr"` Moneda string `xml:",attr"` Exportacion string `xml:",attr"` MetodoPago string `xml:",attr,omitempty"` FormaPago string `xml:",attr,omitempty"` CondicionesDePago string `xml:",attr,omitempty"` Sello string `xml:",attr"` NoCertificado string `xml:",attr"` Certificado string `xml:",attr"` CFDIRelacionados *CFDIRelacionados `xml:"cfdi:CfdiRelacionados,omitempty"` Emisor *Emisor `xml:"cfdi:Emisor"` Receptor *Receptor `xml:"cfdi:Receptor"` Conceptos *Conceptos `xml:"cfdi:Conceptos"` //nolint:misspell Impuestos *Impuestos `xml:"cfdi:Impuestos,omitempty"` Complemento *internal.Nodes `xml:"cfdi:Complemento,omitempty"` Addenda *internal.Nodes `xml:"cfdi:Addenda,omitempty"` }
Document is a pseudo-model for containing the XML document being created
func NewDocument ¶
NewDocument converts a GOBL envelope into a CFDI document
func (*Document) AppendAddenda ¶ added in v0.23.0
func (d *Document) AppendAddenda(c interface{})
AppendAddenda appends an addenda to the document
func (*Document) AppendComplemento ¶ added in v0.23.0
func (d *Document) AppendComplemento(c interface{})
AppendComplemento appends a complement to the document
type ECCConcepto ¶ added in v0.20.0
type ECCConcepto struct { Identificador string `xml:",attr"` Fecha string `xml:",attr"` Rfc string `xml:",attr"` ClaveEstacion string `xml:",attr"` Cantidad string `xml:",attr"` TipoCombustible string `xml:",attr"` Unidad string `xml:",attr,omitempty"` NombreCombustible string `xml:",attr"` FolioOperacion string `xml:",attr"` ValorUnitario string `xml:",attr"` Importe string `xml:",attr"` Traslados []*ECCTraslado `xml:"ecc12:Traslados>ecc12:Traslado"` }
ECCConcepto stores the data of a fuel purchase
type ECCTraslado ¶ added in v0.20.0
type ECCTraslado struct { Impuesto string `xml:",attr"` TasaOCuota string `xml:",attr"` Importe string `xml:",attr"` }
ECCTraslado stores the tax data of a fuel purchase
type Emisor ¶
type Emisor struct { Rfc string `xml:",attr"` Nombre string `xml:",attr"` RegimenFiscal string `xml:",attr"` }
Emisor stores the invoice supplier data
type EstadoDeCuentaCombustible ¶ added in v0.20.0
type EstadoDeCuentaCombustible struct { XMLName xml.Name `xml:"ecc12:EstadoDeCuentaCombustible"` Version string `xml:",attr"` TipoOperacion string `xml:",attr"` NumeroDeCuenta string `xml:",attr"` SubTotal string `xml:",attr"` Total string `xml:",attr"` Conceptos []*ECCConcepto `xml:"ecc12:Conceptos>ecc12:ConceptoEstadoDeCuentaCombustible"` // nolint:misspell }
EstadoDeCuentaCombustible stores the fuel account balance data
type Impuesto ¶ added in v0.23.0
type Impuesto struct { Base string `xml:",attr,omitempty"` Importe string `xml:",attr,omitempty"` Impuesto string `xml:",attr"` TasaOCuota string `xml:",attr,omitempty"` TipoFactor string `xml:",attr,omitempty"` }
Impuesto stores the tax data of the invoice or a line
type Impuestos ¶
type Impuestos struct { TotalImpuestosTrasladados string `xml:",attr,omitempty"` TotalImpuestosRetenidos string `xml:",attr,omitempty"` Retenciones *Retenciones `xml:"cfdi:Retenciones,omitempty"` Traslados *Traslados `xml:"cfdi:Traslados,omitempty"` }
Impuestos store the invoice tax totals
type Receptor ¶
type Receptor struct { Rfc string `xml:",attr"` Nombre string `xml:",attr"` DomicilioFiscalReceptor string `xml:",attr"` RegimenFiscalReceptor string `xml:",attr"` UsoCFDI string `xml:",attr"` NumRegIdTrib string `xml:",attr,omitempty"` //nolint:revive ResidenciaFiscal string `xml:",attr,omitempty"` }
Receptor stores the invoice customer data
type Retenciones ¶ added in v0.23.0
type Retenciones struct {
Retencion []*Impuesto `xml:"cfdi:Retencion"`
}
Retenciones lists the retained taxes of a line or the invoice
type Signature ¶ added in v0.33.0
Signature represents the data for a signature.
func NewSignature ¶ added in v0.33.0
NewSignature instantiates a new signature with the provided serial and value.
type StampData ¶ added in v0.33.0
type StampData struct { UUID string CFDI *Signature SAT *Signature ProviderRFC string Chain string Timestamp string }
StampData defines all the fields that are expected from provider.
type Traslados ¶
type Traslados struct {
Traslado []*Impuesto `xml:"cfdi:Traslado"`
}
Traslados lists the non-retained taxes of a line or the invoice
type VDConcepto ¶ added in v0.21.0
type VDConcepto struct { Identificador string `xml:"identificador,attr"` Fecha string `xml:"fecha,attr"` Rfc string `xml:"rfc,attr"` Curp string `xml:"curp,attr"` Nombre string `xml:"nombre,attr"` NumSeguridadSocial string `xml:"numSeguridadSocial,attr,omitempty"` Importe string `xml:"importe,attr"` }
VDConcepto stores the data of a single food voucher
type ValesDeDespensa ¶ added in v0.21.0
type ValesDeDespensa struct { XMLName xml.Name `xml:"valesdedespensa:ValesDeDespensa"` Version string `xml:"version,attr"` TipoOperacion string `xml:"tipoOperacion,attr"` RegistroPatronal string `xml:"registroPatronal,attr,omitempty"` NumeroDeCuenta string `xml:"numeroDeCuenta,attr"` Total string `xml:"total,attr"` Conceptos []*VDConcepto `xml:"valesdedespensa:Conceptos>valesdedespensa:Concepto"` // nolint:misspell }
ValesDeDespensa stores the food vouchers data
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package addendas adds additional functionality for "Addendas" to the CFDI documents.
|
Package addendas adds additional functionality for "Addendas" to the CFDI documents. |
cmd
|
|
gobl.cfdi
Package main provides a CLI interface for the library
|
Package main provides a CLI interface for the library |
Package internal contains additional functionality required internally.
|
Package internal contains additional functionality required internally. |
format
Package format contains helps to help format output.
|
Package format contains helps to help format output. |
Package test provides tools for testing the library
|
Package test provides tools for testing the library |