api-referencePOST
Automatisches Tracking verfuegbar
Wenn Sie Stripe, LemonSqueezy oder Polar verwenden, benoetigen Sie diesen Endpunkt nicht. Zahlungen werden automatisch verfolgt, wenn Ihr Zahlungsanbieter verbunden ist.POST
https://analytics.flowsery.com/analytics/api/v1/paymentsErfasst eine Zahlung und ordnet den Umsatz zu. amount ist Pflicht; senden Sie transactionId und visitorUid oder sessionUid, wenn vorhanden.
Bearer-Token (Workspace-Token oder Website-API-Schlüssel)
Workspace-Tokens benötigen einen Website-Selektor
Workspace-API-Tokens können auf jede Website im Workspace zugreifen. Übergeben Sie entweder <code>websiteId</code> oder <code>domain</code>, damit Flowsery weiß, welche Website abgefragt oder geändert werden muss. Website-API-Schlüssel sind bereits auf eine Website beschränkt, sodass der Selektor weggelassen werden kann.Website-Auswahl
| Parameter | Typ | Beschreibung |
|---|---|---|
websiteId | string | Website-ID zur Verwendung mit einem Workspace-API-Token. Fügen Sie dieses Feld in den JSON-Text ein, es sei denn, Sie geben domain an. Bei der Authentifizierung mit einem Website-API-Schlüssel weglassen. |
domain | string | Website domain zur Verwendung mit einem Workspace-API-Token, wenn websiteId nicht bereitgestellt wird. Fügen Sie dieses Feld in den JSON-Text ein. Bei der Authentifizierung mit einem Website-API-Schlüssel weglassen. |
Anfrage-Body
| Parameter | Typ | Beschreibung |
|---|---|---|
amountERFORDERLICH | number | Pflicht. Betrag in Währungshaupteinheiten, z. B. 29.99. Mit isRefund der erstattete Betrag. 0 erfasst ein free_trial-Ziel statt eines payment-Ziels. |
currency | string | ISO-4217-Code wie "USD", "EUR" oder "GBP". Fehlt er, gilt "USD", nicht die Währung der Website. |
transactionId | string | Ihre eigene Zahlungs-ID. Sie muss eindeutig sein: Eine wiederholte ID wird mit 409 Conflict abgelehnt, nicht dedupliziert. Senden Sie sie mit isRefund erneut, um die Zahlung als erstattet zu markieren, und nutzen Sie sie später zum Löschen. |
visitorUid | string | Optionale Flowsery Besucher-ID, die normalerweise aus dem _fs_vid-Cookie in Ihrem eigenen Backend stammt. |
sessionUid | string | Optionale Flowsery-Sitzungs-ID, die normalerweise aus dem _fs_sid-Cookie stammt. |
email | string | E-Mail-Adresse des Kunden. |
name | string | Name des Kunden. |
customerId | string | Kunden-ID von Ihrem Zahlungsanbieter. |
isRenewal | boolean | Auf true für wiederkehrende Zahlungen. Verlängerungen zählen zum Umsatz, erfassen aber kein automatisches payment-Ziel. Standard: false. |
isRefund | boolean | Auf true, um eine Erstattung zu erfassen. Mit einer vorhandenen transactionId wird der Erstattungsbetrag dieser Zahlung aktualisiert, statt einen Datensatz anzulegen. Standard: false. |
timestamp | string | ISO-8601-Zeitpunkt der Zahlung, zum Nachtragen. Standard: jetzt. |
Die Erfolgsnutzlast enthält nur eine Bestätigungsnachricht.
Fehler
Eine Anfrage ohne amount liefert 400 Bad Request. Eine transactionId, die für diese Website bereits erfasst ist, liefert 409 Conflict, außer isRefund ist true.Beispielanfrage (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"
}]
}