Brand setup guide

Two steps. Most stores finish in under an hour. You'll need your Brand ID and secret key from your PepLive contact.

1 · Keep the plv code

Shoppers from PepLive land on your product link with ?plv=… added. Save that value (a cookie for 30 days is ideal) and attach it to the order when they check out — e.g. as order metadata peplive_plv.

2 · Tell PepLive about paid and refunded orders

When an order carrying a plv code is paid, and again if it's refunded or cancelled, send:

POST https://peplive.app/api/orders content-type: application/json x-peplive-brand: <your Brand ID> x-peplive-signature: <hex HMAC-SHA256 of the exact body, using your secret key> { "order_ref": "10234", "plv": "<the saved plv code>", "subtotal_cents": 12900, "status": "paid" } // or "refunded" / "cancelled"
  • subtotal_cents = product subtotal in cents, after discounts, before shipping and tax.
  • Refund/cancel calls only need order_ref and status.
  • Sending the same order twice is safe — duplicates are ignored.
  • Don't send customer names, emails or addresses. PepLive doesn't want them.

Example (Node)

import crypto from "node:crypto"; const body = JSON.stringify({ order_ref: order.number, plv, subtotal_cents, status: "paid" }); const sig = crypto.createHmac("sha256", process.env.PEPLIVE_SECRET).update(body).digest("hex"); await fetch("https://peplive.app/api/orders", { method: "POST", body, headers: { "content-type": "application/json", "x-peplive-brand": "your-brand", "x-peplive-signature": sig } });

Example (WooCommerce / PHP)

$body = wp_json_encode([ 'order_ref' => $order->get_order_number(), 'plv' => $order->get_meta('peplive_plv'), 'subtotal_cents' => (int) round(($order->get_subtotal() - $order->get_discount_total()) * 100), 'status' => 'paid' ]); wp_remote_post('https://peplive.app/api/orders', [ 'body' => $body, 'headers' => [ 'content-type' => 'application/json', 'x-peplive-brand' => 'your-brand', 'x-peplive-signature' => hash_hmac('sha256', $body, PEPLIVE_SECRET) ] ]);

Responses

  • {"ok":true,"attributed":true} — a creator gets credit.
  • {"ok":true,"attributed":false} — no valid plv (expired after 30 days, the creator bought it themselves, or it belongs to another brand).
  • 401 — wrong Brand ID, inactive brand, or bad signature.

Last updated October 15, 2026. Questions: support@peplive.app