Introduction | Features | BUY NOW | Download Trial | How to get started | Read the Manual | Troubleshooting | FAQ
Licensed Users | Technical Details | Error Codes | Manuals | Programming interfaces & examples | Other interfaces | Command-line | Test certificates | Checking passwords | Known issues | 2012 changes | SAT Validador Site | Legal Bits | Acknowledgments | References | Contact us | Revision History
FirmaSAT 5 is a stand-alone product which enables you to create and read digital tax receipts (Comprobantes Fiscal Digital) as specified by the Servicio de Administración Tributaria* (SAT) in Mexico. FirmaSAT works with CFD versions 2.0 and 2.2 and CFDi versions 3.0 and 3.2 SAT XML files as per the regulations for January 2012. See New in the Latest Version.
You can run FirmaSAT from the command-line, or call it using the "system" command of another program (for example, using ColdFusion or SQL Server), or call its underlying functions and methods using one of many programming language interfaces. The supported programming language interfaces are VB2005+, C#, VB6/VBA and C/C++. There is an (unsupported) interface for Delphi and a user-supplied interface to Clarion (thanks, Peter). See also Writing an interface in another programming language.
Download the latest Trial Edition of FirmaSAT 5 now. Use one of
[md5=e06a76112b7b85b1ac25d9c59ed8c43c] or [md5=67ecac7bca8bda62e643afbfa93e9b54]
Either unzip the zip file and run the setup.exe program inside it,
or download the exe program directly and run it.
The Trial Edition is fully-functional. You need administrator privileges to install the program. Please read the licence conditions for the Trial Edition. The trial period is 60 days from the date first installed on your system.
You can purchase a licensed version here. Existing licence holders can download the latest Developer Edition here.
Start > Programs > FirmaSAT > FirmaSAT-open.
This opens in the directory
%ALLUSERSPROFILE%\FirmaSAT,
typically C:\ProgramData\FirmaSAT.
FirmaSAT LIBINFO. If correctly installed,
the output should be similar to:
>FirmaSAT LIBINFO FirmaSAT.exe Version 5.1.0 (32-bit) last updated Mar 23 2012 11:36:47. diFirmaSAT2 DLL: Version: 510 Module: C:\Windows\system32\diFirmaSAT2.dll Platform: Win32 Compiled: Mar 23 2012 10:23:45 Licence: T
the application has failed to start because diFirmaSat2.dll was not foundthen the installation is not correct. Repeat from step 1 above.
If you get an error message
'FirmaSAT' is not recognized as an internal or external command, operable program or batch file.then you need to set the path to the program which is in the
%ProgramFiles%\FirmaSAT directory
(or %ProgramFiles(x86)%\FirmaSAT in 64-bit Windows).
SET PATH=%ProgramFiles%\FirmaSAT;%PATH%See the batch file
SetupForFirmaSAT.bat provided in the reference files.
If you are not using the FirmaSAT-open menu option,
then run this first in your command-prompt window to make sure the path is correct.
(We find it easier to use the FirmaSAT-open menu option and then CD to the correct folder.)
DoTests.bat. This runs a set of tests on the sample files provided.
If these work correctly, then the installation is OK.
C:\ProgramData\FirmaSAT>dotests DOING TESTS WITH FIRMASAT... >FirmaSAT LIBINFO ... >FirmaSAT ATTRIBUTE -d -a sello -e Comprobante -i Muestra_v2_signed2011.xml Attribute=[sello] Element=[Comprobante] kvR2+fcKKvkAeyI4m0bfew3qzlAfJO0IUXdi8VXU8WYUjFf7fw2p2l75nR31GlkCGsnlA58mxOlbTWeq JvvtiQvBcU40PGG2S+7dPd5X2RtyP3MLKy7vKawJgcisppeVFN/PQ06i/d+n1lpmBcsHRSjzds5byoI+ +ENaPklwChA= >FirmaSAT NUMBERCERT Muestra_v2_signed2011.xml 30001000000100000800 >FirmaSAT DATENOTAFTER aaa010101aaa_CSD_01.cer 2012-07-29T16:58:40Z >FirmaSAT DATENOTAFTER -b aaa010101aaa_CSD_01.cer 2010-07-30T16:58:40Z ===[cut]=== SIGN A V3 (CFDI) DOCUMENT THEN VERIFY IT... >FirmaSAT SIGNXML -s @ -k aaa010101aaa_csd_01.key -p a0123456789 -c aaa010101aaa _csd_01.cer -i ejemplo_v3_base2011.xml -o ejemplo_v3-new_signed.xml STATUS: 0 ERRORDESCRIPTION: OK DATETIMECREATED: Tue Jul 05 18:02:00 2011 >FirmaSAT VERIFYSIG ejemplo_v3-new_signed.xml OK ===[cut]=== USE NEW QUERYCERT COMMAND... >FirmaSAT QUERYCERT -q rfc aaa010101aaa_csd_01.cer AAA010101AAA >FirmaSAT QUERYCERT -q organizationName -w aaa010101aaa_csd_01.cer Servicio de Administración Tributaria ALL DONE.
For a more detailed description of the command-line options in FirmaSAT, see the FirmaSAT command-line utility page.
The following source-code files are all included in the FirmaSAT 5 distribution.
See Writing an interface in another programming language for advice and examples in how to use FirmaSAT with other programming languages.
You can browse the main manual on-line in HTML form. There is a more detailed table of contents and an index.
Dot-NET programmers using VB.NET or C# can browse the FirmaSAT Namespace manual (uses scripts and frames).
2010-08-23: SAT has issued some new test certificates and keys to replace the ones that expired 21 August 2010. These new certificates are valid until July 2012. You can also download via FTP from ftp://ftp2.sat.gob.mx/asistencia_ftp/publicaciones/solcedi/Cer_Sellos.zip (use FireFTP with Firefox).
NOTE: these will expire in July this year and then all the tests in the current FirmaSAT 5 distribution will fail!
There are two validator sites for CFD documents:
See the results of uploading some of our test files created with FirmaSAT to the SAT Validador Site.
Please read our analysis of the sample v3 file
ejemplo1 cfdv3.xml, dated 21 September 2010
provided by SAT and why we think it's wrong.
Comprobante/@SerieFolioFiscalOrig node
is required in the pipe string (cadena original) for SAT versión 3.2, but this was
erronously omitted in preliminary regulations issued by SAT,
which we used to design the program.
This has been fixed in FirmaSAT version 5.1.1 released 11 May 2012.
Thanks to Rodrigo Tarrats for pointing this out.
...expected at most 2 fraction digitsbut you know you can have up to six. This has been fixed in version 5.1.0 released 23 March 2012.
The initial schema for SAT versión 2.0 in 2006 restricted t_Importe types to 2 fraction digits.
Sometime in 2009 they sneaked in a change to allow 6 decimal places without changing the version number or the URI for the schema.
(Thanks to Alonso Cervantes Farfán for pointing us in the right direction on this.)
Error code -28: XML restriction is violated/XML restricción es violada: Bad attribute/atributo mal [Comprobante/@noCertificado]: '' is too short/es demasiado corto, minimum length/longitud mínima=20then see the page ValidateXml and XMLOK in FirmaSAT 5, which explains how to solve it.
Resumen del análisis del XML Se presentaron errores al leer el comprobante: xxxxxxxxx.xml Error: CFD no codificado en: UTF-8. Codificado en: ANSI (No Unicode).
More on this ridiculous requirement at UTF-8 byte-order mark problem .
Anyway, this has been addressed in FirmaSAT 4.1.0, released 14 July 2011. XML files created by the SignXML functions will now include this BOM. There are also new functions and methods provided to add the BOM to an existing file (any file, not just an XML document, provided it actually is UTF-8). See Fix UTF-8 BOM.
Thanks to Oscar Escamilla and Marco Osorio for bringing this to our attention.
As far as we know, the new SAT CFD version 2.2 and 3.2 schemas will become compulsory from June or July 2012, and the old versions 2.0 and 3.0 will no longer be permitted.
The latest information we have is here.
For more information about FirmaSAT, please send us a message.
If you have a problem with your purchase from Kagi, or a question on payment methods, please contact Kagi directly.
This page last updated 11 May 2012
diFirmaSatNet.dll to fix display problems with UTF-8 characters
with Sat.MakePipeStringFromXml and Sat.GetXmlAttribute when using VB.NET and C#.
No changes were made to the core DLL or EXE files dated 22/23 December 2010. Signatures are not affected by this update.
Updated test XML files with 2011 dates.