SharklioSharklioDocs Support Log in

DocsRewarding users

View as Markdown

Credits and reversals

Every offer sends the same two statuses: credited, and sometimes reversed later. Here is the whole path, and what to do when a result is taken back.

One path for every offer

Every offer works the same way for you, whether the user starts it on your offerwall, from the Offers API, or in a mobile SDK. You handle one set of statuses, whatever the offer is.

StepWhat happensPostback
StartedThe user opens the offer. It shows in My offers as In progress.None
CreditedThe advertiser confirmed the step, and it is credited right away.Status 1
ReversedA credited result was taken back later.Status 2
ExpiredThe user started but did not finish in time.None

All events of one result carry the same transaction_id. A result is credited once, and a credited result can later be reversed. Nothing else is possible.

When a step is credited

  • A step, for example installing an app or reaching a level in a game, is credited as soon as the advertiser reports it from their server. There is no waiting period on our side.
  • An offer with several steps sends each step as its own result, with its own transaction_id.
  • There is no proof to send and nothing for you or the user to approve. If the advertiser does not confirm a step, for example because a requirement was not met, it is not credited.
  • The payout of every credited step is added to your Sharklio balance.

When a result is reversed

A reversal, also called a chargeback, takes back a result that was already credited. It is rare with clean traffic. Common reasons:

  • Fraud, for example multiple accounts, bots, or hidden VPN traffic.
  • The result was refunded, or the offer requirements were not met after all.
  • Our staff found that a credited result broke the offer rules.

How you recognize a reversal

We do not change or delete the postback you already got. We send a new postback for the same transaction:

  • {transaction_id} is the same as in the status 1 postback you credited.
  • {status} is 2 and {state} is reversed.
  • {reward} and {payout} are the same positive amounts as in the credit. They are never negative.
  • {event_id} is new.
Credit:   tx=8f3k2a  status=1  state=credited  reward=315  payout=0.315
Reversal: tx=8f3k2a  status=2  state=reversed  reward=315  payout=0.315

What happens on our side

  • The transaction is marked as reversed in our records, with the date and the reason. You see it in your dashboard under Reports, Chargebacks.
  • The payout is deducted from your Sharklio balance. If it was part of a payout you already received, it comes off your next payout.
  • The user sees the offer as Reversed in My offers on your offerwall.

What your server should do

  • Take {reward} back from the user whose ID is in {user_id}.
  • Do it only if you credited that transaction_id, and only once.
  • If the user has already spent the reward, decide how you handle it: let the balance go below zero, or hold withdrawals until it is recovered. Make sure your own terms allow it.
  • Answer with HTTP 200, even if you ignore the event, so we do not retry it.

The example handler on the Postbacks page shows the checks.

Keep reversals low

  • Use a user ID that stays the same and keep link security on. It is on by default.
  • Do not reward users for rating apps or for offers they did not complete.
  • Stop accounts that complete offers faster than a person could.

Missing rewards

If a user thinks an offer should have paid, they can tap Report on the offer in My offers on the offerwall, and our team checks it with the advertiser. You can also send the user ID, offer name, and date to [email protected].