Datos de prueba

Fiscalapi ofrece datos de prueba para que puedas integrar la API, con estos datos puedes activar una suscripción, comprar timbres y facturar en el ambiente de pruebas.

Tarjetas de prueba

Tarjetas de crédito y débito de prueba para facilitar el proceso de simulación de pagos en el ambiente de pruebas, utilizadas para activar una suscripción y comprar timbres.

MarcaNúmero de TarjetaCVCFecha de Expiración
Visa4242 4242 4242 42423 dígitos al azarCualquier fecha futura
Visa (débito)4000 0566 5566 55563 dígitos al azarCualquier fecha futura
Mastercard5555 5555 5555 44443 dígitos al azarCualquier fecha futura
Mastercard (serie 2)2223 0031 2200 32223 dígitos al azarCualquier fecha futura
Mastercard (débito)5200 8282 8282 82103 dígitos al azarCualquier fecha futura
Mastercard (prepaga)5105 1051 0510 51003 dígitos al azarCualquier fecha futura

Personas de prueba

Personas de prueba para facilitar el proceso de facturación en el ambiente de pruebas. El SAT obliga a utilizar estas personas, sus datos fiscales y sus certificados para realizar pruebas de facturación. Utilice cualquier regimen fiscal y uso de CFDI compatible para las personas de prueba.

Personas Físicas

RFCSCNFVALIDEZ OBLIGACIONESNOMBRECÓDIGO POSTALRETENCIÓN
CACX7605101P8No2XOCHILT CASAS CHAVEZ362570
FUNK671228PH6No1KARLA FUENTE NOLASCO011600
IAÑL750210963No1LUIS IAN ÑUZCO852560
JUFA7608212V6No1ADRIANA JUAREZ FERNANDEZ011600
KAHO641101B39No1OSCAR KALA HAAK760742
KICR630120NX3No1RODRIGO KITIA CASTRO362461
MISC491214B86No1CECILIA MIRANDA SANCHEZ010100
RAQÑ7701212M3No1ÑEVES RAMIREZ QUEZADA789050
WATM640917J45No1MARIA WATEMBER TORRES435430
WERX631016S30No1XAIME WEIR ROJO012790
XAMA620210DQ5No1ALBA XKARAJAM MENDEZ012190
XIQB891116QE4No4BERENICE XIMO QUEZADA409680
XOJI740919U48No1INGRID XODAR JIMENEZ760280

Personas Morales

RFCSCNFVALIDEZ OBLIGACIONESNOMBRECÓDIGO POSTALRETENCIÓN
EKU9003173C9No1ESCUELA KEMPER URGATE425010
IIA040805DZ4No1INDISTRIA ILUMINADORA DE ALMACENES626610
H&E951128469No1HERRERIA & ELECTRICOS060020
IVD920810GU2No1INNOVACION VALOR Y DESARROLLO639010
IXS7607092R5No1INTERNACIONAL XIMBO Y SABORES230040
JES900109Q90No1JIMENEZ ESTRADA SALAS371610
KIJ0906199R1No1KERNEL INDUSTIA JUGUETERA289710
L&O950913MSANo1LUCES & OBRAS609220
OÑO120726RX3Si1ORGANICOS ÑAVEZ OSORIO405010
S&S051221SE2No1S & SOFTWARE760220
URE180429TM6No1UNIVERSIDAD ROBOTICA ESPAÑOLA869910
XIA190128J61No1XENON INDUSTRIAL ARTICLES763430
ZUÑ920208KL4No1ZAPATERIA URTADO ÑERI345410

Certificados de prueba

Para facturar en el ambiente de pruebas, cada persona de prueba cuenta con un certificado de sello digital (CSD). Este consiste en dos archivos: un certificado .cer y una llave privada .key que se utiliza para sellar las facturas. Es indispensable utilizar el par correcto para cada persona. Utilice la contraseña 12345678a para cualquier llave privada.

Estructura de directorios

Al descomprimir la carpeta de certificados encontrarás la siguiente 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
    └── ...
  • Personas Físicas: Carpeta que contiene subcarpetas para cada persona física, identificadas por su RFC.
  • Personas Morales: Carpeta que contiene subcarpetas para cada persona moral, identificadas por su RFC.
  • Dentro de cada subcarpeta se encuentra otra carpeta llamada CSD_<RFC>_... con los archivos .cer y .key correspondientes, estos archivos son los que debes subir o enviar en las 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 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.

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, es probable en en el futuro necesites decodificarlo y obtener su representación original, es decir, obtener el archivo .cer, .key, .xml, .pdf, etc.

Decodificación de archivos codificados en 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 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.");
    }
}

¿Le resultó útil esta página?