Datos de prueba
Fiscalapi ofrece datos de prueba para integrar la API: con ellos activas una suscripción, compras timbres y emites facturas en el ambiente de pruebas.
Tarjetas de prueba
Usa estas tarjetas de crédito y débito para simular los pagos en el ambiente de pruebas, tanto al activar una suscripción como al comprar timbres. Por las normas de seguridad PCI DSS, todos los pagos se hacen desde el dashboard.
| Marca | Número de tarjeta | CVC | Fecha de expiración |
|---|---|---|---|
| Visa | 4242 4242 4242 4242 | 3 dígitos al azar | Cualquier fecha futura |
| Visa (débito) | 4000 0566 5566 5556 | 3 dígitos al azar | Cualquier fecha futura |
| Mastercard | 5555 5555 5555 4444 | 3 dígitos al azar | Cualquier fecha futura |
| Mastercard (serie 2) | 2223 0031 2200 3222 | 3 dígitos al azar | Cualquier fecha futura |
| Mastercard (débito) | 5200 8282 8282 8210 | 3 dígitos al azar | Cualquier fecha futura |
| Mastercard (prepaga) | 5105 1051 0510 5100 | 3 dígitos al azar | Cualquier fecha futura |
Personas de prueba
Usa estas personas para facturar en el ambiente de pruebas. El SAT obliga a usar estas personas, sus datos fiscales y sus certificados para hacer pruebas de facturación. Puedes usar cualquier régimen fiscal y uso de CFDI compatibles con cada persona.
También puedes usar tus datos fiscales y certificados reales, pero nunca datos inventados.
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 |
Certificados de prueba
Para facturar en el ambiente de pruebas, cada persona de prueba tiene un certificado de sello digital (CSD), formado por dos archivos: el certificado (.cer) y la llave privada (.key) con la que se sellan las facturas. Usa siempre el par que corresponde a cada persona. La contraseña de todas las llaves privadas es 12345678a.
Estructura de directorios
Al descomprimir el archivo de certificados encontrarás esta estructura:
Certificados_Pruebas/
├── Personas Físicas/
│ ├── RFC_PERSONA1_TIMESTAMP/
│ │ └── CSD_RFC_PERSONA1_TIMESTAMP/
│ │ ├── archivo.cer
│ │ ├── archivo.key
│ │ └── contraseña.txt
│ └── ...
└── Personas Morales/
├── RFC_EMPRESA1_TIMESTAMP/
│ └── CSD_RFC_EMPRESA1_TIMESTAMP/
│ ├── archivo.cer
│ ├── archivo.key
│ └── contraseña.txt
└── ...
Las carpetas Personas Físicas y Personas Morales tienen una subcarpeta por persona, identificada por su RFC. Dentro de cada una hay otra carpeta, cuyo nombre empieza con CSD_ seguido del RFC, con los archivos .cer y .key de esa persona. Esos son los archivos que subes o envías en tus peticiones HTTP para facturar en el ambiente de pruebas.
Codificación de archivos en base64
Base64 es un esquema de codificación que convierte cualquier archivo en texto, y es una de las formas más sencillas de transferir archivos por internet. Todos los lenguajes de programación soportan la codificación en base64.
Codificación de archivos CSD a base64
Cuando creas una factura en el modo de operación por valores, el campo taxCredentials lleva los archivos CSD (.cer y .key) del emisor codificados en base64. Si tu lenguaje no aparece en los ejemplos, busca en Google "codificar archivo a base64 en" seguido del nombre de tu 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
Para recuperar el archivo original de un contenido en base64, como un .cer, un .key, un XML o un PDF, lo decodificas. Todos los lenguajes de programación soportan la decodificación de base64.
Decodificación de archivos codificados en base64
Cuando Fiscalapi recibe una petición de facturación por valores, decodifica los archivos CSD en base64 para obtener los archivos originales. Tú puedes hacer lo mismo con cualquier archivo en base64 que recibas en una respuesta de Fiscalapi, como un XML, un PDF o un logo.
Si tu lenguaje no aparece en los ejemplos, busca en Google "decodificar base64 a archivo original en" seguido del nombre de tu lenguaje.
Decodificación de archivos codificados en 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.");
}
}