FirmaSAT features
Summary |
New in the Latest Version |
Comparison with FirmaSAT 4 |
Contact
Summary of Features
FirmaSAT
enables the user to:
- create the "piped-string" (cadena) required for the signature from an XML file
- make the signature (sello) string in base64 format given an XML file, the private key file and its password
- sign a given XML file directly by creating and adding the `sello` field and
(at the user's option) the `certificado` and `noCertficado` fields
- validate an XML file for the correct SAT form
- verify a signature in an XML file using either the encapsulated `certificado` field or a separate X.509 certificate file
- extract a given attribute from the XML file
- compute the hash digest of the piped string
- extract the digest from the signature
- extract the serial number and start and expiry dates of the certificate,
either from the `certificado` field in an XML file or from the .CER file directly.
- convert a certificate to base64 format suitable for the `certificado` field.
- check that a private key and certificate are matched.
- form the cadena original del timbre fiscal digital del SAT from the
tfd element in a CFDi document.
- verify the
selloSAT in the tfd element.
- produce a private key in base64 format suitable for the
the `llaveCertificado` element of a `Cancelacion` XML document.
- create a PFX (PKCS-12) file in the base64 required by some PACs to cancel an invoice.
New in the Latest Version
Version 5.1.1 (2012-05-11):
Version 5.1.0 of FirmaSAT (2012-03-23):
-
By popular request we have added a new function to create a PFX file in the base64 file format
required by some PAC's to cancel a CFDi invoice.
You can seal this PFX/PKCS-12 file with the password of your choice.
- Added a new function to query an X.509 certificate for a given value.
The available queries include a search for the subject's RFC number and the issuer's organization name
(which should always be "Servicio de Administración Tributaria") if the certificate was issued by SAT.
-
Fixed XML type check for the number of decimal places in the version 2.0 t_Importe element (thanks, Alonso).
It was only 2 decimal places in the original SAT schema, but 6 are now allowed.
- Added more error messages in Spanish. Removed accented characters from the Spanish help and error messages
(á→a, é→e, ...).
This makes them display properly in all environments.
-
Changed the behaviour of the command-line utility
so the output file must be explicitly specified with the "-o" option.
See The behaviour of the FirmaSAT command-line has changed in version 5.1.
This reduces the likelihood of existing data files getting accidentally overwritten by the output.
Version 5.0.1 (2012-01-07):
- Minor update to fix bug with missing
Emisor/@Nombre node for cadena original in new versions 2.2 and 3.2.
Version 5.0.0 of
FirmaSAT (2011-12-29):
- Added support for CFD versión 2.2 and CFDi versión 3.2 documents.
These are automatically detected from
the Comprobante/@version attribute in the input XML file.
- Added support for the new supplements (complementos) introduced in 2011 and 2012:
-
Introduced stricter XML data type and length checking when
validating an XML document.
-
Added the
SAT_GetKeyAsString function,
the Sat.GetKeyAsString Method,
and the GETKEYSTRING command.
These will form the private key from the encrypted private key file in the required base64 format
to insert in the `llaveCertificado` element of a `Cancelacion` XML document.
-
Added the notation `elementname[N]` to specify the N'th element with name `elementname` in the document
when using the
SAT_GetXmlAttribute function,
the Sat.GetXmlAttribute Method,
or the ATTRIBUTE command. For example,
s = Sat.GetXmlAttribute(fname, "descripcion", "cfdi:Concepto[1]")
s = Sat.GetXmlAttribute(fname, "descripcion", "cfdi:Concepto[2]")
s = Sat.GetXmlAttribute(fname, "descripcion", "cfdi:Concepto[3]")
s = Sat.GetXmlAttribute(fname, "descripcion", "cfdi:Concepto[4]")
- Fixed issue with very rare 127-byte signature.
Version 4.1.0 of
FirmaSAT (2011-07-14):
- XML files created by the SignXML functions will now include the
UTF-8 byte order mark (BOM) which is now required by the SAT validator sites.
-
Added the
SAT_FixBOM function,
the Sat.FixBom Method,
and the UTF8FIX command.
These will add the UTF-8 BOM to any existing file, if it does not already have it,
provided the file only contains valid UTF-8-encoded characters.
Version 4.0.0 of
FirmaSAT (2011-07-05):
- Removed dependency on CryptoSys PKI.
The file
diCrPKI.dll is no longer required.
- Added functions and methods to operate on the Timbre Fiscal Digital (TFD) element.
Users can form the cadena original del timbre fiscal digital del SAT,
extract the digest from the signature, and verify the selloSAT signature.
-
Fixed XML reader to cope with default namespace and unprefixed element names in versión 3.0 CFDi documents.
Version 3.0.0 of
FirmaSAT (2010-12-23):
- Changed default message digest algorithm from MD5 to SHA-1.
- Added support for SAT version 3.0 CFDI XML files as per schema
cfdv3.xsd.
All functions automatically check the XML document for the Comprobante version number (2.0 or 3.0)
and process accordingly.
- Added support for for all existing supplements as listed on
Complementos de Factura Electrónica
as at 30 November 2010.
- Proveedor de Servicios Autorizado (
psgecfd.xsd)
- Estado de cuenta de combustibles de monederos electrónicos como Factura Electrónica (
ecc.xsd)
- Donativos "Donatarias" (
donat.xsd)
- Compra venta de "Divisas" (
Divisas.xsd)
- Estados de Cuenta Bancario "ECB" (
ecb.xsd)
- Impuestos Locales (
implocal.xsd)
- Emisión por cuenta de terceros (
terceros.xsd)
- Sector de ventas al detalle ("Detallista") (
detallista.xsd).
Detallista was already included in version 2, but it now copes with detallista together with psgecfd.
- Added Get XML Receipt Version Number to find the Comprobante version number (2 or 3) of an XML document.
- Added Check Key and Certificate to check whether a private key matches the public key in a certificate.
- Added alternative to
SAT_GetCertExpiry to return the start date of a certificate.
Version 2.1.0 of
FirmaSAT (2010-11-01):
- Adds option to use SHA-1 in signatures.
- Fixes UTF-8 display issue with
Sat.MakePipeStringFromXml and
Sat.GetXmlAttribute methods.
Version 2.0.2 of
FirmaSAT (2010-05-20):
- Fixes up various issues in the earlier versions.
- Includes interfaces and test programs for VB6/VBA and C/C++ programmers.
- A separate (unsupported) interface is available for Delphi.
Version 2.0.0 of
FirmaSAT (2010-01-13):
Comparison with FirmaSAT 4
| Functionality |
FirmaSAT 5 |
FirmaSAT 4 |
CFD versión 2.0 (cfdv2.xsd) |
 |
 |
CFDI versión 3.0 (cfdv3.xsd) |
 |
 |
CFD versión 2.2 (cfdv22.xsd) |
 |
 |
CFDI versión 3.2 (cfdv32.xsd) |
 |
 |
Proveedor de Servicios Autorizado (psgecfd.xsd) |
 |
 |
Sector de ventas al detalle "Detallista" (detallista.xsd) |
 |
 |
Estado de cuenta de combustibles de monederos electrónicos como Factura Electrónica (ecc.xsd) |
 |
 |
Compra venta de "Divisas" (Divisas.xsd) |
 |
 |
Estados de Cuenta Bancario "ECB" (ecb.xsd) |
 |
 |
Impuestos Locales (implocal.xsd) |
 |
 |
Donativos "Donatarias" (donat.xsd) |
 |
 |
donat11.xsd |
 |
 |
Emisión por cuenta de terceros (terceros.xsd) |
 |
 |
terceros11.xsd |
 |
 |
iedu.xsd |
 |
 |
psgcfdsp.xsd |
 |
 |
ventavehiculos.xsd |
 |
 |
pfic.xsd |
 |
 |
TuristaPasajeroExtranjero.xsd |
 |
 |
leyendasFisc.xsd |
 |
 |
Contact us
For more information please send us a message.
This page last updated 12 May 2012