Certificados de Prueba
FiscalAPI pone a tu disposición los Certificados de Sello Digital (CSD) de prueba vigentes para realizar pruebas en el ambiente de integración. Estos certificados, emitidos por la autoridad tributaria (SAT), permiten simular procesos de facturación sin efectos fiscales reales.
¡IMPORTANTE! Para emitir facturas en el ambiente de pruebas, puedes utilizar los CSD proporcionados en esta página o tus certificados reales. Sin embargo, los CSD proporcionados aquí son ideales si no deseas utilizar información real en el ambiente de pruebas.
Introducción
En México, el sistema fiscal electrónico se sustenta en dos credenciales: la Firma Electrónica Avanzada (FIEL) y el Certificado de Sello Digital (CSD). Aunque ambas son emitidas por el Servicio de Administración Tributaria (SAT) y tienen elementos en común, cumplen funciones diferentes y no deben confundirse.
El Certificado de Sello Digital (CSD) es esencial para la emisión de Comprobantes Fiscales Digitales por Internet (CFDI), comúnmente conocidos como facturas electrónicas. Este certificado garantiza la seguridad, autenticidad y validez de los CFDI mediante la firma digital de los documentos.
Por su parte, la FIEL se utiliza para identificar y autenticar legalmente a los contribuyentes en diversos trámites ante el SAT y otras entidades, pero no tiene la función de firmar facturas electrónicas. Ambos instrumentos son fundamentales, pero su uso es específico y debe comprenderse claramente para cumplir con las obligaciones fiscales.
Definición y Base Legal
Un Certificado de Sello Digital es un documento electrónico mediante el cual el Servicio de Administración Tributaria (SAT) garantiza la vinculación entre la identidad de un contribuyente y su clave pública. Su fundamento legal se encuentra en el artículo 17-G del Código Fiscal de la Federación.
Componentes de las credenciales fiscales
Ya sea la FIEL o los certificados de sello digital (CSD), ambos están compuestos por tres elementos:
- Archivo .cer: Llave pública.
- Archivo .key: Llave privada.
- Contraseña de la llave privada.
Diferencias entre un CSD y la FIEL
Aunque el CSD y la FIEL están relacionados, son diferentes y tienen propósitos distintos:
Característica | CSD | FIEL |
---|---|---|
Propósito | Firmar facturas electrónicas (CFDI) | Avalar identidad en trámites |
Requisito | Requiere FIEL para su tramitación | No requiere otro certificado |
Uso | Exclusivo para facturación | Múltiples trámites excepto facturación |
Vigencia y Validez
Tanto la FIEL como los certificados de sello digital (CSD) tienen una vigencia de 4 años. Es importante renovarlos antes de su caducidad, ya que cualquier factura emitida con un certificado vencido carece de validez fiscal y puede ser motivo de sanciones por parte de la autoridad tributaria en México (SAT).
Certificados de Prueba
FiscalAPI pone a tu disposición los Certificados de Sello Digital (CSD) de prueba vigentes para realizar pruebas en el ambiente de integración. Estos certificados, emitidos por la autoridad tributaria (SAT), permiten simular procesos de facturación sin efectos fiscales reales.
- Contraseña de los CSD de pruebas:
12345678a
- Nota Importante: Al generar una factura, nunca incluyas el régimen de capital como parte de la razón social del emisor. Siempre utiliza únicamente la razón social del emisor sin el régimen de capital. Por ejemplo, si la razón social del emisor es "MI EMPRESA S.A. DE C.V.", utiliza únicamente "MI EMPRESA".
Validez de Obligaciones
Código | Descripción |
---|---|
1 | Habilitado para facturar (IVA exento, tasa 0% y 16%) |
2 | Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Norte |
3 | Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Sur |
4 | Habilitado para facturar (IVA exento, tasa 0%, 8% y 16%) Zona Fronteriza Norte y Sur |
Personas Físicas
RFC | SCNF | VALIDEZ OBLIGACIONES | NOMBRE | CÓDIGO POSTAL | RETENCIÓN |
---|---|---|---|---|---|
CACX7605101P8 | No | 2 | XOCHILT CASAS CHAVEZ | 36257 | 0 |
FUNK671228PH6 | No | 1 | KARLA FUENTE NOLASCO | 01160 | 0 |
IAÑL750210963 | No | 1 | LUIS IAN ÑUZCO | 85256 | 0 |
JUFA7608212V6 | No | 1 | ADRIANA JUAREZ FERNANDEZ | 01160 | 0 |
KAHO641101B39 | No | 1 | OSCAR KALA HAAK | 76074 | 2 |
KICR630120NX3 | No | 1 | RODRIGO KITIA CASTRO | 36246 | 1 |
MISC491214B86 | No | 1 | CECILIA MIRANDA SANCHEZ | 01010 | 0 |
RAQÑ7701212M3 | No | 1 | ÑEVES RAMIREZ QUEZADA | 78905 | 0 |
WATM640917J45 | No | 1 | MARIA WATEMBER TORRES | 43543 | 0 |
WERX631016S30 | No | 1 | XAIME WEIR ROJO | 01279 | 0 |
XAMA620210DQ5 | No | 1 | ALBA XKARAJAM MENDEZ | 01219 | 0 |
XIQB891116QE4 | No | 4 | BERENICE XIMO QUEZADA | 40968 | 0 |
XOJI740919U48 | No | 1 | INGRID XODAR JIMENEZ | 76028 | 0 |
Personas Morales
RFC | SCNF | VALIDEZ OBLIGACIONES | NOMBRE | CÓDIGO POSTAL | RETENCIÓN |
---|---|---|---|---|---|
EKU9003173C9 | No | 1 | ESCUELA KEMPER URGATE | 42501 | 0 |
IIA040805DZ4 | No | 1 | INDISTRIA ILUMINADORA DE ALMACENES | 62661 | 0 |
H&E951128469 | No | 1 | HERRERIA & ELECTRICOS | 06002 | 0 |
IVD920810GU2 | No | 1 | INNOVACION VALOR Y DESARROLLO | 63901 | 0 |
IXS7607092R5 | No | 1 | INTERNACIONAL XIMBO Y SABORES | 23004 | 0 |
JES900109Q90 | No | 1 | JIMENEZ ESTRADA SALAS | 37161 | 0 |
KIJ0906199R1 | No | 1 | KERNEL INDUSTIA JUGUETERA | 28971 | 0 |
L&O950913MSA | No | 1 | LUCES & OBRAS | 60922 | 0 |
OÑO120726RX3 | Si | 1 | ORGANICOS ÑAVEZ OSORIO | 40501 | 0 |
S&S051221SE2 | No | 1 | S & SOFTWARE | 76022 | 0 |
URE180429TM6 | No | 1 | UNIVERSIDAD ROBOTICA ESPAÑOLA | 86991 | 0 |
XIA190128J61 | No | 1 | XENON INDUSTRIAL ARTICLES | 76343 | 0 |
ZUÑ920208KL4 | No | 1 | ZAPATERIA URTADO ÑERI | 34541 | 0 |
Codificación de archivos en base64
Base64 es un esquema de codificación que convierte cualquier archivo en su representación en texto. Este método de codificación es una de las formas más sencillas de transferir archivos a través de internet.
Tip: Todos los lenguajes soportan la codificación en base64.
Codificación de archivos CSD a base64
Cuando utilizas el modo de operación por valores en el recurso de facturas,
uno de los campos de la petición es taxCredentials
que representa los archivos CSD (.cer
y .key
) del emisor de la factura.
Estos archivos se envían codificados en base64.
💡 Busca en google: "Codificar archivo a base64 en <lenguaje>
"
Codificación de CSD a base64
using System;
using System.IO;
class Program
{
static string EncodeFileToBase64(string filePath)
{
byte[] fileBytes = File.ReadAllBytes(filePath);
return Convert.ToBase64String(fileBytes);
}
static void Main()
{
string cerFilePath = "ruta_del_archivo.cer";
string keyFilePath = "ruta_del_archivo.key";
// Codificar archivo .cer
string cerBase64 = EncodeFileToBase64(cerFilePath);
Console.WriteLine("Archivo .cer codificado en Base64: " + cerBase64);
// Codificar archivo .key
string keyBase64 = EncodeFileToBase64(keyFilePath);
Console.WriteLine("Archivo .key codificado en Base64: " + keyBase64);
}
}
Decodificación de base64 a archivos
Una vez codificado un archivo en base64, eventualmente deberás decodificarlo y obtener su representación original.
Tip: Todos los lenguajes soportan la decodificación de base64.
Decodificación de archivos CSD a base64
Cuando fiscalapi recibe una petición de facturación por valores lo que hacemos es aplicar la decodificación de los archivos CSD codificados en base64 para obtener los archivos originales.
Este mismo proceso lo puedes aplicar en tu lado para obtener los archivos originales de cualquier respuesta que te enviemos en base64, por ejemplo, un XML, un PDF, un Logo, etc.
💡 Busca en google: "Decodificar base64 a archivo original en <lenguaje>
"
Decodificación de CSD a base64
using System;
using System.IO;
class Program
{
// Decodifica una cadena Base64 a un archivo
static void DecodeBase64ToFile(string fileBase64, string filePath)
{
byte[] fileBytes = Convert.FromBase64String(fileBase64);
File.WriteAllBytes(filePath, fileBytes);
}
static void Main()
{
// Ejemplo: Decodificar una cadena Base64 a un archivo
string xmlBase64 = "YXF1aV92YV9lbF9jb250ZW5pZG9fZGVfYmFzZTY0"; // Ejemplo de contenido Base64
string pdfBase64 = "b3RyYV9jYWRlbmFfZGVfYmFzZTY0X2FxdWk="; // Ejemplo de contenido Base64
string cerBase64 = "Y29udGVuaWRvX2RlbF9jZXJ0aWZpY2Fkb19lbl9iYXNlNjQ="; // Ejemplo de contenido Base64
string keyBase64 = "Y29udGVuaWRvX2RlX2xhX2xsYXZlX3ByaXZhZGFfZW5fYmFzZTY0"; // Ejemplo de contenido Base64
DecodeBase64ToFile(xmlBase64, "C:\\archivos\\factura.xml");
DecodeBase64ToFile(pdfBase64, "C:\\archivos\\factura.pdf");
DecodeBase64ToFile(cerBase64, "C:\\archivos\\certificado.cer");
DecodeBase64ToFile(keyBase64, "C:\\archivos\\llave-privada.key");
Console.WriteLine("Archivos decodificados y guardados.");
}
}