api-referencePOST

Suivi automatique disponible

Si vous utilisez Stripe, LemonSqueezy ou Polar, vous n'avez pas besoin de ce point de terminaison. Les paiements sont suivis automatiquement lorsque votre fournisseur de paiement est connecte.
POSThttps://analytics.flowsery.com/analytics/api/v1/payments

Enregistre un paiement et attribue le revenu. amount est obligatoire ; envoyez transactionId et visitorUid ou sessionUid lorsque vous les avez.

Jeton Bearer (jeton workspace ou clé API de site)

Les jetons d'espace de travail nécessitent un sélecteur de site Web

Les jetons de l'API Workspace peuvent accéder à tous les sites Web de l'espace de travail. Transmettez <code>websiteId</code> ou <code>domain</code> pour que Flowsery sache quel site Web interroger ou muter. Les clés API de site Web sont déjà limitées à un seul site Web, le sélecteur peut donc être omis.

Sélecteur de site Web

ParametreTaperDescription
websiteIdstringID de site Web à utiliser avec un jeton API d'espace de travail. Incluez ce champ dans le corps JSON, sauf si vous fournissez domain. Omettre lors de l'authentification avec une clé API de site Web.
domainstringSite Web domain à utiliser avec un jeton API d'espace de travail lorsque websiteId n'est pas fourni. Incluez ce champ dans le corps JSON. Omettre lors de l'authentification avec une clé API de site Web.

Corps de la requete

ParametreTaperDescription
amountREQUISnumberObligatoire. Montant en unités monétaires principales, par ex. 29.99. Avec isRefund, le montant remboursé. 0 enregistre un objectif free_trial au lieu de payment.
currencystringCode ISO 4217 comme "USD", "EUR" ou "GBP". Vaut "USD" par défaut s'il est omis, et non la devise du site.
transactionIdstringVotre propre identifiant de paiement. Il doit être unique : un identifiant répété est rejeté avec 409 Conflict, pas dédupliqué. Renvoyez-le avec isRefund pour marquer ce paiement comme remboursé, et utilisez-le plus tard pour le supprimer.
visitorUidstringID de visiteur Flowsery facultatif, provenant généralement du cookie _fs_vid sur votre propre backend.
sessionUidstringID de session Flowsery facultatif, provenant généralement du cookie _fs_sid.
emailstringAdresse e-mail du client.
namestringNom du client.
customerIdstringIdentifiant client provenant de votre fournisseur de paiement.
isRenewalbooleanÀ true pour les paiements récurrents. Les renouvellements comptent dans le revenu mais n'enregistrent pas l'objectif payment automatique. false par défaut.
isRefundbooleanÀ true pour enregistrer un remboursement. Avec un transactionId existant, met à jour le montant remboursé de ce paiement au lieu d'ajouter une ligne. false par défaut.
timestampstringDate ISO 8601 du paiement, pour un import d'historique. Maintenant par défaut.

La charge utile de réussite contient uniquement un message de confirmation.

Erreurs

Une requête sans amount renvoie 400 Bad Request. Un transactionId déjà enregistré pour ce site renvoie 409 Conflict, sauf si isRefund vaut true.
Exemple de requete (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"
  }]
}