# Preguntas Frecuentes (FAQ)

Esta sección responde las **preguntas más comunes** que surgen al integrar y operar
la **API de QRwey!** en entornos reales de venta, facturación y confirmación de pagos.

## ¿Qué es exactamente un QR en QRwey?

Un QR en QRwey! representa una **referencia segura a una transacción para un intento de autofactura**, no contiene
información sensible directamente.

El QR incluye:

- Un token opaco (`t`)
- Una firma HMAC (`m`)
- Una versión de formato (`v`)


Todos los datos reales se obtienen únicamente al **resolver el QR vía API**.

Consulta: [Cómo funciona QRwey!](/guides/introduction)

## ¿Puedo reutilizar un QR varias veces?

Depende de la configuración del comercio:

- **Multiuso:** el QR puede resolverse varias veces antes de expirar
- **Un solo uso:** el QR se invalida después de la primera resolución


Si un QR ya fue consumido, la API responderá con **409 Conflict**.

Consulta: [Expiración & Reuse de Tokens](/guides/expiration-and-reuse)

## ¿Qué pasa si el QR expira?

Una vez alcanzada la fecha `expires_at`:

- El QR ya no puede resolverse
- Su estado cambia a **`EXPIRED`** (verificable vía `GET /v1/qrs/{qrId}`)
- Debes generar un nuevo QR


La expiración no puede extenderse.

Consulta: [Ciclo de vida del QR & Seguridad](/guides/qr-lifecycle)

## ¿Puedo generar QRs sin usar idempotencia?

NO.

El header `idempotency-key` es **obligatorio** al crear un QR.
Esto evita transacciones duplicadas en escenarios de reintentos.

Consulta: [Idempotencia & Reintentos](/guides/idempotency)

## ¿Qué debo hacer si recibo un error 409 o si el QR expiró?

- **409 Conflict:** el QR ya fue consumido
→ Continúa el flujo como QR inválido
- **`status: EXPIRED`** (consultando `GET /v1/qrs/{qrId}`): el QR expiró
→ Genera un nuevo QR


El error `409` **no debe reintentarse**.

Consulta: [Manejo de errores](/guides/error-handling)

## ¿Es seguro mostrar el QR al cliente?

Sí, siempre que:

- El QR esté dentro de su ventana de expiración
- El detalle de la transacción se valide vía API
- No confíes en el contenido del QR sin resolverlo


El QR por sí solo **NO expone datos sensibles**.

## ¿Dónde debo usar mi API Key?

La API Key debe usarse **solo en backend**.

No debe:

- Exponerse en frontend
- Incluirse en aplicaciones móviles
- Compartirse entre sistemas sin control


Consulta: [Autenticación](/guides/authentication)

## ¿Puedo usar datos de prueba en producción?

No es recomendable.

El ambiente de producción debe usarse **SOLO con datos reales**.
Para pruebas, utiliza los ambientes de desarrollo o testing configurados para ese fin.

Consulta: [Uso responsable](/legal/responsible-use)

## ¿Qué formato de moneda soporta QRwey?

QRwey utiliza códigos de moneda **ISO 4217**.
En México, el valor típico es:

- `MXN`


Revisa el contrato completo en la [Referencia del API](/apis/qrwey).

## ¿QRwey reemplaza a mi PAC y a los sitios de autofactura?

SI.

QRwey! te permite crear intenciones de autofacturación, para que el cliente final se pueda
autofacturar (timbrar XML, generar PDF) usando la apps [iOS](https://apps.apple.com/mx/app/qrwey/id6752782250)
y [Android](https://play.google.com/store/apps/details?id=com.petroverse.qrwey&pcampaignid=web_share) de QRwey!.
Si bien el timbrado y la generación del CFDi ocurre en QRwey!, es recomendable que a través de WebHooks actualizes
la base de datos en tus sistemas para que almacenes el XML timbrado.

QRwey!:

- Crea intenciones de autofactura mediante QRs
- Genera QRs seguros
- Permite consultar el QR
- Realiza el timbrado una vez que el cliente final acepta con un clic la autofactura
- Disponibiliza portales de consulta y ligas de autofactura para cada RFC que genere dichos QRs


## ¿Dónde puedo ver todos los endpoints y campos disponibles?

En la **Referencia del API**, generado directamente desde el OpenAPI oficial:

- [Referencia del API](/apis/qrwey)


## ¿Dónde empiezo si tengo dudas?

Recomendamos este orden:

1. [Guía Rápida](/guides/quickstart)
2. [Autenticación](/guides/authentication)
3. [Generar un código QR](/guides/generate-qr)
4. [Resuelve un código QR](/guides/resolve-qr)
5. [Referencia del API](/apis/qrwey)