Requisitos previos
- Una cuenta de Fluz — crearás credenciales de API de staging y acuñará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 — ver Entorno de Staging vs. Producción.
- Cada mutación necesita un
idempotencyKeyúnico (un UUID generado por el cliente) para que una solicitud solo se procese una vez — ver Idempotencia.
Antes de comenzar
Cada llamada es una solicitudPOST a un único endpoint de GraphQL. Acuñar tu token (Paso 2) se autentica con tu API Key; todas las demás llamadas se autentican con tu token portador:
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 de Staging. Cuando aparezcan las credenciales, copia tu API Key, User ID y Account ID.Guía completa: Prepara tus cuentas.
Intercambia credenciales por un token de acceso
Acuña un token de acceso de usuario de corta duración y con alcance usando tu API Key. Esta llamada va al mismo endpoint de GraphQL, autorizada con Guarda el
Authorization: Basic <YOUR_API_KEY>; todas las siguientes llamadas usan el token retornado como credencial Bearer.token devuelto y envíalo como Authorization: Bearer <token> en cada solicitud a continuación. Los tokens son de corta duración — acuñalos del lado del servidor y acuña uno nuevo con la misma mutación cuando uno expire (ver Actualizar un token de acceso expirado). Detalles completos: Credenciales de API.Deposita fondos a tu balance de Fluz
Precargar un balance 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, vía el sitio web de Fluz en sandbox.
- Programáticamente, vía la mutación
depositCashBalance(mostrada a continuación).
Primero, obtén un ID de método de pago (getWallet)
Primero, obtén un ID de método de pago (getWallet)
Para depositar vía API necesitas el ID de una fuente de fondos (p. ej., un Toma el
bankCardId). Ejecuta getWallet y guarda el ID que quieras usar.bankCardId o bankAccountId de la respuesta. Administrar fuentes de fondos vía la API requiere el alcance MANAGE_PAYMENT. Más detalle: Ver fuentes de fondos.Realiza el depósito
Usa la mutacióndepositCashBalance. Recibe un objeto DepositCashBalanceInput.Campos de entrada
string
requerido
Un UUID único generado por el cliente que garantiza que el depósito se procese solo una vez.
Float
requerido
El monto a depositar.
CashBalanceDepositType
Balance de destino. Uno de
CASH_BALANCE, GIFT_CARD_BALANCE o RESERVE_BALANCE.UUID
De dónde proviene el dinero — proporciona una de
bankAccountId, bankCardId o paypalVaultId.Int
Solo para
GIFT_CARD_BALANCE. Un MCC de cuatro dígitos que clasifica el negocio. Usa getMccList para obtener valores válidos.UUID
Cuando se selecciona
CASH_BALANCE, la cuenta de gasto específica a la cual depositar.Respuesta de ejemplo
Respuesta de ejemplo
Los depósitos pueden liquidarse al instante o dentro de 2–5 días hábiles dependiendo de la fuente de fondos y el tipo de liquidación. El objeto
balances en la respuesta refleja tu balance disponible actual. Consulta Revisar balance de cuenta para volver a consultarlo en cualquier momento.Explora comercios y elige una oferta
Con un balance listo, obtiene el catálogo de comercios disponibles y sus ofertas de cashback usando
getMerchants.Argumentos útiles
String
Filtra comercios por nombre.
OffsetInput
{ limit, offset }. El limit predeterminado y máximo es 20.OfferTypesInput
Indicadores booleanos de qué tipos de oferta devolver, p. ej.
{ giftCardOffer: true, cardLinkedOffer: false }.FilterByInput
Filtra ofertas dentro de cada comercio, p. ej. 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 — consúltalo como máximo una vez al día y usa name u offerTypes para búsquedas dirigidas.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 stock en vivo.merchantSlug y denomination son obligatorios. paymentMethod predetermina a FLUZPAY (tu balance 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ífica
Pasa un
merchantSlug y Fluz aplicará automáticamente la mejor oferta disponible para ese comercio.Campos de entrada
string
requerido
Un UUID único generado por el cliente para que la compra se procese solo una vez.
UUID / String
requerido
Proporciona uno.
merchantSlug selecciona automáticamente la mejor tasa; offerId apunta a una oferta específica.Float
requerido
El monto de la tarjeta de regalo a comprar.
UUID / Float
Cómo pagar. Usa
balanceAmount (balance de Fluz), bankAccountId, bankCardId o paypalVaultId. Puedes combinar tu balance de Fluz con otra fuente.Boolean
predeterminado:"true"
Recurre a tu balance de Fluz si otro método de pago falla. Configura en
false para deshabilitar ese respaldo.Float
Tasa mínima de recompensa a aceptar al comprar mediante
merchantSlug.UUID
Fuerza una tasa exclusiva específica. Se encuentra en
getMerchants para ofertas de tipo EXCLUSIVE_RATE_OFFER.UUID
La cuenta de gasto (balance en efectivo) a cargar.
String / String / UUID
Metadatos opcionales de gasto.
memo máximo 255 caracteres; las categorías se crean al primer uso. Ver 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, revisa 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 fue comprada.Listo 🎉
Has ejecutado una transacción completa — fondeaste un balance, exploraste ofertas, compraste una tarjeta de regalo y la revelaste. Desde aquí, explora el resto de la API:Tarjetas virtuales
Emite y administra 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
Inserta flujos de Fluz directamente en tu propia interfaz.
¿Quieres saber más? Contáctanos en support@fluz.app para hablar con nuestros expertos o solicitar una demo.