Send test events without being charged
A test event checks one of your events and is never charged. Press Send test next to the event, or send it from your server with "test": true. Either way, the event turns Verified, which is what the launch checklist needs before you can submit.
See also: Setup without an SDK
On this page
Send test from the campaign page
Under Events you pay for, each event that isn’t verified yet has a Send test button. Press it, and “Test event received - event marked verified” confirms it. No API key or code is needed. This proves the event is set up, not that your server can send it.
Send a test from your server
Send the same request as a live event, with
"test": trueadded:curl -X POST "https://affiliateos.xyz/v1/advertiser/events" \ -H "Authorization: Bearer $AFOS_ADVERTISER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "advertiserUserId": "tp_test_01", "eventKey": "level_25", "eventId": "test_level_25_01", "timestamp": "2026-10-30T19:06:00.000Z", "appId": "<your product ID>", "campaignId": "<your campaign ID>", "test": true }'Example for Tidewater Putt. A test needs no click ID, can run before the campaign is approved and comes back as
approvedwithout a charge. This one checks your key, yourappId, the event key and the shape of your request.Give every test its own eventId
A test uses up its
eventIdthe same way a live event does. Send a second test with the same one and it comes back asduplicate. Send a live event with a test’seventIdand the live one comes back asduplicatetoo, and is never counted. Start test IDs with something liketest_.Check it worked
The event shows Verified on the campaign page. Event logs lists the test with a test badge and the event’s price beside it, and tests are never billed. When every required event is Verified, the checklist’s Verify it works item is done. Next: Submit for approval and go live.
| A test checks | A test doesn’t check |
|---|---|
| Your API key, when sent from your server | That your app or site captured afos_click_id |
That the appId and event key match an event | The 48-hour timestamp check |
| The required fields in your request | Your balance, whether the campaign is live or the transactionId a live purchase or deposit event must carry |
A test never charges you and never pays a publisher.
You can still send tests from your server on a live campaign. They stay free, and the event keeps its Live status. Keep test on in your staging setup and off for real users, so a real user’s event is never sent as a test and left unpaid to the publisher.