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"`
TipoCambio string `xml:",attr,omitempty"`
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
command
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 |