Requisitos previos
- Una cuenta de Fluz: crearás credenciales de API de staging y emitirás un token de acceso en los Pasos 1–2 a continuación.
- Las solicitudes van al endpoint GraphQL del sandbox. Nada aquí carga una tarjeta real: consulta Entorno de Staging vs. Live.
- Cada mutación necesita un
idempotencyKeyúnico (un UUID generado por el cliente) para que una solicitud solo se procese una vez: consulta Idempotencia.
Antes de comenzar
Excepto para emitir tu token (Paso 2), cada llamada es una solicitudPOST a un único endpoint GraphQL, autenticada con tu token bearer:
El flujo completo
Regístrate y registra una app
Crea una cuenta de Fluz en fluz.app, luego abre la Consola de Desarrolladores y crea una nueva aplicación Staging. Cuando aparezcan las credenciales, copia tu
clientId y clientSecret: el secreto solo se muestra una vez.Guía completa: Prepara tus cuentas.Intercambia credenciales por un token de acceso
Emite un token de acceso de usuario de corta duración y con alcance específico a partir de las credenciales de tu app. Esta llamada va al servicio OAuth; todas las llamadas posteriores usan el token devuelto como credencial Bearer.Almacena el
accessToken devuelto y envíalo como Authorization: Bearer <accessToken> en cada solicitud a continuación. Los tokens son de corta duración (expiresIn está en segundos): emítelos del lado del servidor y renuévalos antes del vencimiento. Detalles completos: Credenciales de API.Deposita fondos a tu saldo de Fluz
Precargar un saldo de Fluz generalmente hace que las compras de tarjetas de regalo sean más rápidas y puede evitar ciertos controles de velocidad. Puedes depositar de dos maneras:
- Manualmente, a través del sitio web de Fluz en sandbox.
- Programáticamente, a través de la mutación
depositCashBalance(se muestra a continuación).
Primero, recupera un ID de método de pago (getWallet)
Primero, recupera un ID de método de pago (getWallet)
Para depositar vía API necesitas el ID de una fuente de fondos (por ejemplo, un Toma el
bankCardId). Ejecuta getWallet y guarda el ID que quieres usar.bankCardId o bankAccountId de la respuesta. Administrar fuentes de fondos vía API requiere el scope MANAGE_PAYMENT. Más detalle: Ver fuentes de fondos.Realiza el depósito
Usa la mutacióndepositCashBalance. Acepta un objeto DepositCashBalanceInput.Campos de entrada
Un UUID único generado por el cliente que garantiza que el depósito se procese solo una vez.
El monto a depositar.
Saldo de destino. Uno de
CASH_BALANCE, GIFT_CARD_BALANCE o RESERVE_BALANCE.De dónde proviene el dinero: proporciona uno de
bankAccountId, bankCardId o paypalVaultId.Solo para
GIFT_CARD_BALANCE. Un MCC de cuatro dígitos que clasifica el negocio. Usa getMccList para recuperar valores válidos.Cuando se selecciona
CASH_BALANCE, la cuenta de gasto específica en la que depositar.Respuesta de ejemplo
Respuesta de ejemplo
Los depósitos pueden liquidarse al instante o dentro de 2–5 días hábiles según la fuente de fondos y el tipo de liquidación. El objeto
balances en la respuesta refleja tu saldo disponible actual. Consulta Verificar saldo de cuenta para volver a consultarlo en cualquier momento.Explora comercios y elige una oferta
Con un saldo listo, obtén el catálogo de comercios disponibles y sus ofertas de cashback usando
getMerchants.Argumentos útiles
Filtra comercios por nombre.
{ limit, offset }. El limit predeterminado y máximo es 20.Indicadores booleanos para qué tipos de ofertas devolver, por ejemplo
{ giftCardOffer: true, cardLinkedOffer: false }.Filtra ofertas dentro de cada comercio, por ejemplo por
deliveryFormat (URL, CODES, PIN_AS_CODE, PIN_WITH_URL).Paginación: la respuesta puede devolver menos resultados que tu
limit. Para extraer el catálogo completo, sigue incrementando offset por tu limit y detente cuando la API devuelva un arreglo vacío ([]). El catálogo sin filtrar es grande: recupéralo como máximo una vez al día y usa name u offerTypes para búsquedas específicas.Opcional: obtén la mejor oferta única para un comercio (getOfferQuote)
Opcional: obtén la mejor oferta única para un comercio (getOfferQuote)
Si ya conoces el comercio y el monto,
getOfferQuote devuelve directamente la mejor oferta disponible, incluyendo información de inventario en vivo.slug y denomination son obligatorios. paymentMethod predetermina a FLUZPAY (tu saldo de Fluz) y también acepta BANK_CARD, BANK_ACCOUNT, PAYPAL, APPLE_PAY y GOOGLE_PAY.Compra una tarjeta de regalo
Usa la mutación
purchaseGiftCard. Puedes identificar qué comprar de dos maneras:- Opción A — Slug del comercio (recomendado)
- Opción B — ID de oferta específico
Pasa un
merchantSlug y Fluz aplicará automáticamente la mejor oferta disponible para ese comercio.Campos de entrada
Un UUID único generado por el cliente para que la compra se procese solo una vez.
Proporciona uno.
merchantSlug selecciona automáticamente la mejor tasa; offerId apunta a una oferta específica.El monto de la tarjeta de regalo a comprar.
Cómo pagar. Usa
balanceAmount (saldo de Fluz), bankAccountId, bankCardId o paypalVaultId. Puedes combinar tu saldo de Fluz con otra fuente.Recurre a tu saldo de Fluz si falla otro método de pago. Establécelo en
false para deshabilitar ese fallback.Tasa mínima de recompensa a aceptar al comprar vía
merchantSlug.Fuerza una tasa exclusiva específica. Se encuentra en
getMerchants para ofertas de tipo EXCLUSIVE_RATE_OFFER.La cuenta de gasto (saldo en efectivo) a cargar.
Metadatos de gasto opcionales.
memo máximo 255 caracteres; las categorías se crean en el primer uso. Consulta Agregar detalles de gasto.Respuesta de ejemplo
Respuesta de ejemplo
Conserva el
giftCardId de la respuesta: lo usarás para revelar la tarjeta en el siguiente paso. Si una compra falla, consulta Códigos de error de tarjetas de regalo.Revela los detalles de la tarjeta de regalo
Finalmente, recupera los detalles canjeables (código, PIN y/o URL).
¿No tienes el giftCardId? Lista tus tarjetas primero (getGiftCards)
¿No tienes el giftCardId? Lista tus tarjetas primero (getGiftCards)
Omite esto si acabas de capturar un Puedes filtrar con
giftCardId en el Paso 3. De lo contrario, lista tus tarjetas de regalo:status y userCashBalanceId, y paginar con paginate.Revela los detalles de canje
Llama arevealGiftCardByGiftCardId con el giftCardId.Respuesta de ejemplo
Respuesta de ejemplo
Los campos de canje varían por comercio. Algunas tarjetas devuelven un
code alfanumérico sin pin; otras devuelven solo una url. Siempre representa según el deliveryFormat devuelto por getGiftCards (no getMerchants) — la oferta activa de un comercio puede cambiar después de la compra, y getGiftCards refleja el formato bajo el cual la tarjeta realmente se compró.¡Listo! 🎉
Ejecutaste una transacción completa: financiastes un saldo, exploraste ofertas, compraste una tarjeta de regalo y la revelaste. A partir de aquí, explora el resto del API:Tarjetas virtuales
Emite y gestiona tarjetas virtuales aceptadas por la red.
Billeteras y transferencias
Abre cuentas de gasto y mueve fondos entre ellas.
Actividad de transacciones
Extrae, filtra y anota el historial de transacciones.
Widgets embebidos
Integra flujos de Fluz directamente en tu propia UI.
¿Quieres saber más? Contáctanos en support@fluz.app para hablar con nuestros expertos o solicitar una demo.