api-referencePOST

Seguimiento automatico disponible

Si usa Stripe, LemonSqueezy o Polar, no necesita este endpoint. Los pagos se rastrean automaticamente cuando su proveedor de pagos esta conectado.
POSThttps://analytics.flowsery.com/analytics/api/v1/payments

Registra un pago y atribuye los ingresos. amount es obligatorio; envía transactionId y visitorUid o sessionUid cuando los tengas.

Token Bearer (token de workspace o clave API de sitio web)

Los tokens de espacio de trabajo necesitan un selector de sitio web

Los tokens de API del espacio de trabajo pueden acceder a todos los sitios web del espacio de trabajo. Pase <code>websiteId</code> o <code>domain</code> para que Flowsery sepa qué sitio web consultar o mutar. Las claves API del sitio web ya están destinadas a un sitio web, por lo que se puede omitir el selector.

Selector de sitios web

ParametroTipoDescripcion
websiteIdstringID del sitio web para usar con un token de API del espacio de trabajo. Incluya este campo en el cuerpo JSON a menos que proporcione domain. Omitir al autenticarse con una clave API de sitio web.
domainstringSitio web domain para usar con un token API de espacio de trabajo cuando no se proporciona websiteId. Incluya este campo en el cuerpo JSON. Omitir al autenticarse con una clave API de sitio web.

Cuerpo de solicitud

ParametroTipoDescripcion
amountOBLIGATORIOnumberObligatorio. Importe en unidades principales de la moneda, p. ej. 29.99. Con isRefund, el importe reembolsado. 0 registra un objetivo free_trial en lugar de payment.
currencystringCódigo ISO 4217 como "USD", "EUR" o "GBP". Si se omite, se usa "USD", no la moneda del sitio.
transactionIdstringTu propio ID de pago. Debe ser único: un ID repetido se rechaza con 409 Conflict, no se deduplica. Vuelve a enviarlo con isRefund para marcar ese pago como reembolsado y úsalo después para borrarlo.
visitorUidstringID de visitante Flowsery opcional, que generalmente se obtiene de la cookie _fs_vid en su propio backend.
sessionUidstringID de sesión Flowsery opcional, normalmente procedente de la cookie _fs_sid.
emailstringDireccion de correo electronico del cliente.
namestringNombre del cliente.
customerIdstringID del cliente de su proveedor de pagos.
isRenewalbooleanPon true para pagos recurrentes. Las renovaciones cuentan como ingresos pero no registran el objetivo payment automático. false por defecto.
isRefundbooleanPon true para registrar un reembolso. Con un transactionId existente, actualiza el importe reembolsado de ese pago en lugar de añadir un registro. false por defecto.
timestampstringFecha ISO 8601 del pago, para cargar historial. Por defecto, ahora.

La carga útil de éxito contiene únicamente un mensaje de confirmación.

Errores

Una solicitud sin amount devuelve 400 Bad Request. Un transactionId ya registrado para este sitio devuelve 409 Conflict, salvo que isRefund sea true.
Solicitud de ejemplo (Node.js)
const handler = async (req, res) => {
  const _fs_vid = req.cookies._fs_vid;
  const _fs_sid = req.cookies._fs_sid;

  const response = await fetch(
    "https://analytics.flowsery.com/analytics/api/v1/payments",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${FLOWSERY_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        websiteId: process.env.FLOWSERY_WEBSITE_ID,
        amount: 29.99,
        currency: "USD",
        transactionId: "payment_456",
        visitorUid: _fs_vid,
        sessionUid: _fs_sid,
        email: "buyer@example.com",
      }),
    }
  );

  res.status(200).send("Payment tracked");
};
200
{
  "status": "success",
  "data": [{
    "message": "Payment recorded successfully"
  }]
}