Skip to main content
Work in progress, under review. This page is not validated yet and may contain inaccuracies. Track and record its status in the documentation review tracker. This banner is removed once the page is validated.
Webhooks let Paylead push notifications to your back-office the moment something happens on your Program: a Reward is created, a Consumer’s scraping fails, an Offer is about to expire. From Shift, you declare which URL receives each event type and inspect the dispatch history.
This page covers the Shift workflow: how to register a callback URL, test it, and audit deliveries. For the technical contract (payload shape, signature, retry policy, idempotency), see the Webhooks concept.

Set up a Webhook

Each event type is configured independently. You point each event at a single callback URL on your side.
1

Open the Hooks section

In Shift, go to My Account > Developers > Hooks. The left side lists every event type Paylead supports.
2

Pick the event you want to subscribe to

Click the + next to the event. Its configuration panel opens on the right.
3

Enter the callback URL

In the Callback URL field, enter the HTTPS endpoint that will receive the event. The endpoint must accept POST with a JSON body and respond 2xx quickly.
4

Validate with a test delivery

Click Send test. Paylead immediately posts a payload to the URL with mock data; non-nullable fields are populated with sample values, nullable fields are left blank. Use this to confirm DNS, TLS, and your handler’s basic plumbing.
5

Save your changes

Click Save. The Webhook is now live and Paylead will dispatch real events to it from this moment forward.
To remove a Webhook, click the trash icon next to the event in the Hooks list.

Available events

Paylead emits Webhooks across four families: the Reward lifecycle, the Affiliation lifecycle, payouts, and Offer changes. Subscribe only to the events your back-office actually reacts to.

Reward lifecycle

Event typeDescription
Reward CreatedA transaction is eligible to a Cashback. The Reward is visible to the Consumer in your app.
Reward ValidatedThe Reward has not been cancelled by the merchant. It will be invoiced to the merchant at the end of the month.
Reward Paid inThe merchant has paid the Reward. Paylead will transfer the Cashback amount to the Program in the following days.
Reward Paid outThe Reward amount has been transferred to the Program Manager bank account.
Consumer Reward PooledThe Consumer can be notified that a Reward has been deposited in their pool.
Consumer Reward ValidationA Reward has been created and is in Pending Validation status.

Affiliation lifecycle

Event typeDescription
Affiliation CreatedA Consumer has just received a new Affiliation Reward.
Affiliation ValidatedThe Affiliation Reward is validated by the merchant after the validation delay.
Affiliation Paid inThe merchant has paid the Affiliation Reward.
Affiliation PooledA new Affiliation Reward has landed in the Consumer’s pool.
Affiliation Paid outThe Consumer pool has been triggered and the Affiliation Reward transferred to the payment account.
Affiliation CancelledA pending Affiliation Reward is cancelled instead of validated.

Payouts and Ventilation

Event typeDescription
Payout SuccessTwo wire transfers have been sent to the Program account: one for the sum of the Rewards, one for the associated fees.
Payout ErrorA transfer error occurred, preventing the Reward from being paid to the Consumer account.
Ventilation File AvailableA Ventilation file is available for download.

Offers

Event typeDescription
New Offer AvailableA new Offer has been published and is available to Consumers.
Offer Ending Soon DateAn Offer is about to expire. The Webhook is sent 48h before the end date.
Offer Ending Soon BudgetThe Offer budget is close to depletion. The Webhook is sent when 80% of the budget is reached.
Offer Cashback Rate IncreaseThe Cashback rate of an Offer has been increased.

Bank synchronization

Event typeDescription
Scraping ErrorA bank synchronization failure has blocked the Consumer’s transaction feed.
The Scraping Error Webhook fires when the Consumer’s account enters any of the following synchronization statuses:
  • SCARequired, webauthRequired, additionalInformationNeeded, decoupled, validating: the sync is suspended. Resetting it requires the Consumer to renew consent or complete an SCA (Strong Customer Authentication) flow.
  • ActionNeeded: the Consumer must perform a specific action on the bank’s website or app (for example, accept new terms and conditions).
See the Status reference for the full synchronization status list.

Event logs

The Event Logs tab in My Account > Developers lists every Webhook delivery attempted on your Program. Use it to audit failures and confirm that your endpoint is up.
ColumnDescription
DateWhen the event was dispatched.
ConsumerThe Consumer ID the event relates to, when applicable.
TypeThe Webhook event type.
URLThe callback URL that received the event.
StatusThe HTTP status code returned by your endpoint. 200 or 201 confirms successful receipt.
Use the Date from and Date to filters to scope the history. Without filters, every event since the Program launched is shown.
Each delivery includes a unique event_id. Persist it on your side and dedupe on it; Paylead may redeliver the same event after retries. See idempotency for the recommended pattern.

What’s next

Webhooks concept

Payload shape, HMAC signature verification, and retry policy for your endpoint.

API keys

Generate the Connector, Injector, and M2M credentials your back-office needs.

Status reference

Canonical list of every status Shift exposes, including synchronization codes.

Ventilations and invoices

Download Ventilation files once the Ventilation File Available event fires.