For brands

Test sales and test networks

On the live network, a program can go live only after one signed event has arrived from your event API integration or your Stripe webhook. The console's "Send test sale" button runs the whole pipeline with a sale that never becomes payable. A separate test network lets you try everything, including payouts, with test money.

The go-live check

The setup's Test sale step listens for your first event. Any event signed with your program's own secret, or sent by its own Stripe webhook, counts, even if it matches no partner and even while the program is a draft: it proves your signature and address are right.

One signed test event (Node, bash)
BODY='{"id":"evt_test_1","type":"sale","order_id":"test_order_1","amount_cents":10000,"currency":"USD","ref_code":"your-handle"}'
TS=$(date +%s)
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$VP_SIGNING_SECRET" -hex | sed 's/^.* //')
curl -X POST https://viralpayouts.com/api/v1/events \
  -H "content-type: application/json" \
  -H "x-vp-program: <program id>" \
  -H "x-vp-timestamp: $TS" \
  -H "x-vp-signature: $SIG" \
  -d "$BODY"

The timestamp must be within 5 minutes of our clock. The answer says whether the sale was processed, a duplicate or unmatched, and which signing secret matched. Full field list: Event API.

The console test sale

"Send test sale" credits a partner of your choice with a test sale. It runs the real pipeline, but the sale is flagged as a test: it never becomes payable, carries no fee, sends no postback and does not count for the go-live check.

Test networks

ViralPayouts also runs as testnet (a long-lived sandbox) and devnet (thrown away after each QA run). Every page there shows a banner. The code is the same, with its own database, and no real money can move: a live Whop key is refused.

On a test network you canHow
Pay partners in secondsHolds can be 0 days and the minimum payout $0
Simulate a sale or a refundConsole test tools
Simulate the brand paying inConsole test tools
Jump forward in timeMove the clock on by days, to pass holds and payout dates
Connect a payout accountSimulated: one click, no bank details asked

Something here does not match what you see in the product? Email max@viralpayouts.com.