Behaviour defining the webhook callback interface.
Implement this in your module and pass it to SetuClient.Webhook.Handler.
Default no-op implementations are provided via use SetuClient.Webhook.Callbacks.
Example
defmodule MyApp.SetuCallbacks do
use SetuClient.Webhook.Callbacks
@impl SetuClient.Webhook.Callbacks
def handle_payment(%{"eventType" => "payment.success"} = event) do
MyApp.Orders.mark_paid(event["merchantReferenceId"])
:ok
end
def handle_payment(_event), do: :ok
@impl SetuClient.Webhook.Callbacks
def handle_consent(event) do
if SetuClient.Webhook.Handler.consent_active?(event) do
MyApp.AA.create_data_session(SetuClient.Webhook.Handler.consent_id(event))
end
:ok
end
end
Summary
Callbacks
Called for BBPS BILL_SETTLEMENT_STATUS events.
Called for CONSENT_STATUS_UPDATE events.
Called for all dispute_* events.
Called for all mandate status and mandate operation events.
Called for payment events: initiated, pending, success, failed.
Called for refund.pending and refund.successful events.
Called for SESSION_STATUS_UPDATE events.
Called for unrecognised event types.
Callbacks
Called for BBPS BILL_SETTLEMENT_STATUS events.
Called for CONSENT_STATUS_UPDATE events.
Called for all dispute_* events.
Called for all mandate status and mandate operation events.
Called for payment events: initiated, pending, success, failed.
Called for refund.pending and refund.successful events.
Called for SESSION_STATUS_UPDATE events.
Called for unrecognised event types.