Esta página es el recorrido por pantalla, no por API: qué pulsas, qué ves y qué deberías
esperar en cada paso de winal.com.mx/app para llegar de cero
a que tu primer cliente facture. Si tu negocio vende un sistema que usan otros negocios —cada uno con
su propio RFC, facturando por su cuenta, sin hablar nunca con Winal— es a ti a quien le sirve
esta guía: el caso típico es un punto de venta vendido a decenas de comercios (farmacias, tiendas,
franquicias), cada uno dado de alta y operado por ti, desde tu propia sesión. Para el lado de
la API —los dos curl, las cabeceras, los scopes— está
Cuentas administradas; esta página existe para que nadie
tenga que adivinar en qué pantalla vive cada paso.
1. Entra a tu tablero
Si ya te diste de alta en winal.com.mx/registro y verificaste tu correo,
entra con ese correo y la contraseña que creaste en
https://winal.com.mx/app/. El detalle completo de esa
pantalla —invitaciones de equipo, recuperar contraseña, roles— está en
Tu tablero; aquí basta con que sepas que es un plano de acceso
distinto de tus llaves sk_: entras con correo y contraseña, no con una API key.
Apenas entras, la sección Inicio calcula tu siguiente paso — el mismo cálculo que ves abajo en cada sección, para que nunca tengas que adivinar qué sigue. Si todavía no pediste administrar cuentas de clientes, vas a ver una tarjeta aparte: "¿Tus clientes facturan con su propio RFC?" con un botón Ir a Cuentas de clientes — es el atajo directo al paso 3.
2. Antes de dar de alta un cliente: dos requisitos
El alta de una cuenta de cliente —desde la API o desde esta misma consola— exige dos cosas que se configuran una sola vez, no una por cliente. Sin ellas, el formulario de alta del paso 4 se rechaza. Las dos viven en la sección Seguridad de tu tablero:
Activa tu 2FA
Seguridad → Verificación en dos pasos (2FA) → botón Activar 2FA. Escanea el QR (o captura el secreto a mano) con tu app autenticadora y confirma con el código de 6 dígitos.
Declara tus orígenes
Misma pantalla, más abajo: Direcciones desde las que vale tu credencial → + Agregar dirección → escribe la IP o el rango de tu servidor → Guardar lista.
Por qué los dos: dar de alta cuentas de tus clientes, cargarles su sello digital y emitirles credenciales son justo los actos que usaría alguien que te robara la sesión para echar raíces en tu cartera completa de clientes. Por eso, de aquí en adelante, cada uno de esos tres actos vuelve a pedirte contraseña y un código de tu segundo factor en una ventana aparte —lo vas a ver en los pasos 4 y 5—, y por eso tu credencial de API tiene que valer solo desde direcciones que tú mismo declaraste.
2FA: qué ves al activarlo
El botón Activar 2FA te muestra un código QR (dibujado en tu propio navegador — el secreto no
viaja a ningún servicio externo). Debajo, un desplegable "¿No puedes escanear? Captúralo a
mano" trae el secreto en texto y el otpauth:// completo, por si prefieres pegarlo en
un gestor de escritorio. Escribe el código de 6 dígitos que te muestre tu app y pulsa
Confirmar: la tarjeta pasa a mostrar el badge ACTIVADO.
Justo debajo aparece Códigos de respaldo, con un botón Generar códigos de respaldo: son diez códigos de un solo uso que sirven si pierdes el teléfono (en el login, en vez del código de 6 dígitos, usas uno de éstos). Se muestran una sola vez — guárdalos con Descargar como archivo o cópialos antes de pulsar Ya los guardé. Si eres el único dueño de la cuenta, verás además un aviso explicándote que, sin ellos, recuperar el acceso pasa por un procedimiento de soporte con una espera de 72 horas — vale la pena guardarlos de verdad.
Orígenes: qué aceptar y qué pasa al guardar
+ Agregar dirección abre una fila nueva con dos campos: la dirección o rango, y una etiqueta
libre para recordar de qué servidor es ("servidor de producción", "oficina del
manager"…). Acepta direcciones sueltas y rangos CIDR, IPv4 e IPv6 —el propio texto de ayuda trae
ejemplos: 203.0.113.7, 198.51.100.0/24—. Una dirección suelta se guarda
igual como rango (verás /32 al final tras guardar: es la forma de "exactamente esta
dirección", no un error tuyo).
Sin lista declarada, tus llaves valen desde cualquier dirección — por eso este paso es obligatorio en cuanto vas a administrar clientes: tu credencial va a abrir sus cuentas y a firmar sus comprobantes fiscales, así que no puede seguir valiendo desde cualquier punto de internet.
3. Solicita la capacidad — la aprueba Winal, no tú
Ve a la sección Cuentas de clientes de tu tablero. La primera tarjeta, "Cuentas de tus clientes", trae un badge de estado y, si todavía no la tienes, un formulario con una sola pregunta: ¿Para qué la necesitas? Cuéntalo en un par de frases —qué vendes y a cuántos clientes piensas dar de alta— y pulsa Solicitar administrar cuentas de mis clientes. Solo el dueño de la cuenta ve ese botón; el resto del equipo ve la nota "Solo el dueño de la cuenta puede pedirlo."
| Badge | Qué significa |
|---|---|
NO ACTIVADA | Todavía no la pediste, o Winal la rechazó. El formulario sigue disponible. |
EN REVISIÓN | La enviaste (con la fecha de envío) y Winal la está resolviendo. El texto lo dice tal cual: "Te avisamos en cuanto la revisemos." |
ACTIVADA | "Puedes dar de alta cuentas de tus clientes y operarlas desde aquí." Recarga la pantalla (o vuelve a entrar a Cuentas de clientes) para verlo tras la aprobación. |
Por qué la resuelve Winal y no un botón tuyo: al concederla, tu cuenta empieza a emitir CFDI a nombre de terceros bajo el contrato de PAC de Winal, y el consumo de todas tus cuentas de clientes se te factura a ti. Se aprueba una sola vez por integrador —no una por cliente—, así que no es un cuello de botella para dar de alta al cliente 50: solo para el primero.
4. Da de alta tu primer cliente
Con la capacidad activada, la misma pantalla de Cuentas de clientes cambia: aparece la lista "Tus clientes" (vacía la primera vez, con el botón + Dar de alta a mi primer cliente) y la tarjeta Dar de alta un cliente, con dos campos:
| Campo | Qué es |
|---|---|
| Referencia en tu sistema | El id que ese cliente ya tiene en tu propio manager (p. ej. farmacia-0042). Repetir la misma referencia te devuelve la cuenta que ya existe, en vez de crear una segunda — es lo que hace segura una reintentada. |
| Nombre comercial | Opcional, solo para reconocerlo en tu lista. |
Al pulsar Dar de alta se abre la ventana "Confirma que eres tú": tu contraseña y el código de 6 dígitos de tu app autenticadora (o uno de tus códigos de respaldo, en el mismo campo). Es el mismo escalón en cada acto sensible de esta sección — verás el mismo cuadro otra vez en el paso 5.
sk_test_… de esa cuenta y un botón Copiar. Winal solo guarda el hash: si sales de
esta pantalla sin copiarla, no hay forma de volver a verla completa — la única salida es emitir una
credencial nueva desde la ficha de esa cuenta (no hace falta rehacer el alta). Recuerda además que
esta credencial nunca actúa sola: tu sistema siempre la manda junto con tu propia llave — el
detalle de las dos cabeceras está en Cuentas
administradas → Opera por una cuenta.
En cuanto confirmas, la consola te lleva directo a la ficha de ese cliente — no hace falta buscarlo en la lista: es justo donde siguen los pasos 5 en adelante.
Debajo de esta tarjeta hay otra, Altas masivas desde tu sistema: una ventana de tiempo que
autoriza a tu propia credencial de API a crear cuentas por POST /v1/accounts — pensada
para migrar tu cartera completa de un tirón, no para un alta suelta como ésta. Detalle en
Cuentas administradas → La ventana de alta.
5. Carga los datos fiscales y el sello — en la cuenta del cliente, no en la tuya
Dentro de la ficha del cliente (donde te dejó el paso 4, o a la que llegas con Configurar desde la lista), la tarjeta Datos fiscales y sello digital trae el mismo formulario que usarías para tu propia cuenta —ver Configura tu facturación para el detalle de cada regla (nombre fiscal sin régimen de capital, CSD vs. e.firma, etc.)—, aplicado sobre esta cuenta:
| Campo | Nota |
|---|---|
| RFC | El de tu cliente. Si ya timbró algo con esta cuenta, el campo sigue editable en pantalla pero el guardado se rechaza: ver paso 8. |
| Razón social | Sin régimen de capital (sin "S.A. DE C.V." al final) — la misma regla de Configura tu facturación. Si termina en uno, verás el aviso debajo del campo, con el nombre ya corregido listo para copiar. |
| Régimen fiscal | Clave del SAT (p. ej. 601, 612, 616). |
| Código postal | El del domicilio fiscal de tu cliente. |
| Serie (opcional) | Serie por defecto de sus CFDI. |
| Certificado (.cer) / Llave privada (.key) / Contraseña de la llave | El CSD de tu cliente, tramitado por él en el portal del SAT — nunca su e.firma. Sube los tres juntos para cargarlo o reemplazarlo; déjalos en blanco para conservar el que ya está. |
Guardar datos de este cliente vuelve a pedirte el escalón (contraseña + segundo factor): cambiar el sello digital de una cuenta es el acto con el que alguien metido en tu sistema emitiría comprobantes con el certificado de un tercero, así que exige la misma confirmación que el alta.
Al guardar con éxito ves un recuadro verde con lo que quedó registrado —RFC, razón social, régimen, ambiente, y la vigencia del sello si subiste uno— y, si algo sigue faltando para poder facturar, la lista exacta de qué falta justo debajo. Es el mismo texto que vas a ver resumido en la lista de clientes del paso 6: una sola fuente, no dos redacciones distintas del mismo hecho.
6. Cómo se lee el estado de cada cliente
Cierra la ficha (botón Cerrar) y vuelves a la lista Tus clientes, con cuatro filtros arriba de la tabla —Todas, Les falta algo, Listas para facturar, En producción— y un buscador por nombre, referencia o RFC. Cada fila trae el estado de esa cuenta en la columna Para facturar, con uno de estos rótulos:
| Rótulo | Qué significa |
|---|---|
Sin datos fiscales | Todavía no cargaste nada: te dice en dos líneas qué falta (su RFC/razón social/régimen/CP, y su sello digital). |
Le falta algo | Ya hay datos, pero algo bloquea la primera factura — el mensaje exacto (proveedor sin cuenta, sello sin cargar, sello caducado, RFC del sello distinto del perfil…) sale de la misma foto de disponibilidad que ves en la ficha. |
Puede facturar, con avisos | Ya puede emitir, pero hay algo que vale la pena mirar sin que bloquee — por ejemplo, que el alta de su RFC ante el proveedor de timbrado todavía no se confirmó (se reintenta sola cada vez que guardas su perfil o emites un comprobante). |
Lista para facturar | Todo listo, sin avisos pendientes. |
El filtro Listas para facturar agrupa las dos últimas categorías (con avisos o sin ellos: la diferencia es que YA puede emitir); Les falta algo es la bandera roja de verdad. Cada fila también trae su vigencia del sello cuando ya tiene uno cargado ("Sello vigente hasta el <fecha>") y su actividad reciente (comprobantes emitidos y monto en los últimos 60 minutos). Para el detalle completo —el mismo que en el recuadro verde del paso 5— entra con Configurar.
7. Si el proveedor de timbrado quedó apuntando mal: el botón de reparación
Toda cuenta nace apuntando al proveedor de timbrado (PAC) con el que Winal tiene contrato — no tienes que elegir nada. El único caso en que esto se rompe es una cuenta configurada antes de que tu despliegue declarara ese proveedor: queda apuntando a uno con el que nadie tiene cuenta (ni tú, ni Winal), y su primera factura fallaría. Si es tu caso, la ficha de esa cuenta te lo dice sin rodeos: en la tarjeta Datos fiscales y sello digital aparece un bloque extra, Tu proveedor de timbrado, con el texto exacto de qué pasa y un botón:
"Esta cuenta apunta al proveedor de timbrado 'facturama', con el que no se puede emitir: su primera factura fallaría. Muévela al proveedor con el que Winal tiene contrato — su sello digital viaja con ella y no hay que volver a subirlo."
Mover esta cuenta al proveedor de Winal
Pulsa el botón, confirma el escalón (contraseña + segundo factor — es el mismo acto que cambiar un sello, así que pide lo mismo) y listo: la cuenta queda en el proveedor correcto, con el mismo sello digital que ya tenía cargado —no hace falta volver a subir el CSD— y la ficha recalcula al instante qué le falta con el proveedor nuevo. Un toast lo confirma: "Listo: esta cuenta quedó en el proveedor de Winal."
Esta misma tarjeta —con el mismo botón— existe también en tu propia sección Facturación, por si es tu cuenta (y no la de un cliente) la que quedó apuntando al proveedor equivocado.
8. Corregir después: recargar encima, y lo que ya no cambia
No hay botón de borrar en ningún dato fiscal: corregir es volver a guardar encima. Vuelve a la ficha del cliente, cambia el campo que necesites (por ejemplo, un código postal mal tecleado) y pulsa Guardar datos de este cliente de nuevo — con el mismo escalón de siempre. Si dejas los tres campos del CSD en blanco, el sello que ya tenía cargado se conserva tal cual: no hace falta volver a subirlo solo para corregir un dato ajeno al sello.
409
account.fiscal_identity_locked. No es un candado arbitrario: un CFDI no se borra —se
cancela y deja rastro fiscal—, así que el historial de esa cuenta es, para siempre, el de ese
contribuyente. Si tu cliente cambió de RFC de verdad (cerró una razón social y abrió otra), es
otro contribuyente: dale de alta una cuenta nueva (paso 4) y opera desde ahí en adelante. El
resto de los campos —razón social, régimen, código postal, serie— se puede seguir corrigiendo sin
límite, encima del mismo RFC.
Otras dos cosas que vas a necesitar tarde o temprano
| Necesitas | Dónde |
|---|---|
| Perdiste la credencial de un cliente, o quieres rotarla | Ficha del cliente → Credenciales de esta cuenta: emite una nueva o rota la existente (periodo de gracia) sin rehacer el alta. |
| Un cliente con un día bueno choca contra un tope (p. ej. cuántos comprobantes puede emitir por hora) | Ficha del cliente → Topes de actividad: súbelo tú mismo por cuenta, sin escribirle a Winal. Detalle completo de los topes de fábrica en Errores → Topes de actividad por cuenta. |
Códigos de error de este recorrido
| HTTP | code | Dónde lo verías |
|---|---|---|
400 | account.admin_not_enabled | Intentas dar de alta un cliente antes de que Winal apruebe el paso 3. |
400 | account.origin_allowlist_required | Te saltaste el paso 2 (orígenes). Se aplica igual desde la consola que desde la API: las dos rutas comparten el mismo servicio, así que si llegas al paso 4 sin haber declarado tus orígenes, lo ves aquí también — no es un error exclusivo de integradores por API. |
400 | account_admin.purpose_required | El campo "¿Para qué la necesitas?" del paso 3 quedó vacío o muy corto (mínimo 10 caracteres). |
400 | account_admin.already_requested | Ya tienes una solicitud EN REVISIÓN: espera la resolución. |
409 | account.fiscal_identity_locked | Paso 8: intentaste cambiarle el RFC a una cuenta que ya timbró. |
400 | invoice.fiscal_profile_missing | Intentas facturar por una cuenta a la que todavía le falta el paso 5 completo. |
400 | invoice.pac_credentials_missing | El caso del paso 7: la cuenta apunta a un proveedor de timbrado sin cuenta configurada. |
Lista completa de errores de cuentas administradas, con el mensaje exacto de cada uno, en Errores → Cuentas administradas.
Siguiente paso
- Cuentas administradas — el lado de la API: las dos credenciales, la ventana de alta masiva, la firma de peticiones y el detalle de cada endpoint.
- Configura tu facturación — la regla del nombre fiscal, CSD vs. e.firma, y cómo elegir PAC — todo lo que aplica igual a tu cuenta y a la de cada cliente.
- Tu tablero — el resto de las secciones de tu consola: llaves, conectores, ruteo, equipo y el camino a producción.