Create a payment
Track revenue from any payment provider using custom webhook endpoint.
If you're using Stripe, LemonSqueezy, or Polar, you don't need to use this endpoint. We automatically track payments if you have connected your payment provider.
Create a payment
POST https://faurya.com/api/v1/payments
Track payments from any provider and attribute revenue to your traffic sources. Requires Bearer Token authentication.
Request body
Send a JSON object with the following fields:
Required fields
amount(number): Payment amount. Examples:29.99for $29.99,0for free trialscurrency(string): Currency code like"USD","EUR","GBP"transaction_id(string): Unique transaction ID from your payment provider
Optional fields
faurya_visitor_id(string): faurya visitor ID from browser cookies. ⚠️ It's highly recommended to include this field for revenue attribution.email(string): Customer emailname(string): Customer namecustomer_id(string): Customer ID from your payment providerrenewal(boolean): Set to true if it's a recurring payment. false by defaultrefunded(boolean): Set to true if it's a refunded payment. false by defaulttimestamp(string): Payment timestamp (defaults to now)
Response
- Success (200 OK): Returns confirmation message and transaction ID
- Errors: See API Introduction
Here's an example of how to add payment data and attribute revenue using this API endpoint.
Code Examples
Example request (Node.js/Express)
// Send payment data to faurya's API
const handler = async (req, res) => {
const faurya_visitor_id = req.cookies.faurya_visitor_id;
try {
const response = await fetch("https://faurya.com/api/v1/payments", {
method: "POST",
headers: {
Authorization: `Bearer ${faurya_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
amount: 29.99,
currency: "USD",
transaction_id: "payment_456",
faurya_visitor_id: faurya_visitor_id,
}),
});
res.status(200).send("Payment tracked");
} catch (error) {
console.error("Error tracking payment:", error);
res.status(500).send("Failed to track payment");
}
};Success response (200 OK)
{
"message": "Payment recorded and attributed successfully",
"transaction_id": "payment_456"
}