ClearBank.Webhook.Events (ClearBank v1.0.0)

Copy Markdown View Source

Typed structs for all known ClearBank webhook event payloads.

Use these in your ClearBank.Webhook.Handler implementations for structured pattern matching and compile-time field documentation.

Usage

use ClearBank.Webhook.Handler

@impl true
def handle(%ClearBank.Webhook{type: "TransactionSettled", payload: payload}) do
  event = ClearBank.Webhook.Events.TransactionSettled.from_payload(payload)
  # event.transaction_id, event.amount, etc.
  :ok
end

All event types

Event typeModuleTrigger
FITestEventFITestEventPOST /v1/Test
TransactionSettledTransactionSettledPayment settled inbound or outbound
PaymentMessageAssessmentFailedPaymentMessageAssessmentFailedPayment rejected pre-settlement
PaymentMessageValidationFailedPaymentMessageValidationFailedPayment failed validation
TransactionRejectedTransactionRejectedPayment rejected post-submission
FpsPaymentReturnCreatedFpsPaymentReturnCreatedFPS return payment created
BacsPaymentCreatedBacsPaymentCreatedBacs payment created
BacsMandateCreatedBacsMandateCreatedDirect Debit Instruction created
BacsMandateCancelledBacsMandateCancelledDDI cancelled
BacsMandateMigratedBacsMandateMigratedDDI migrated from another SUN
ChapsPaymentCreatedChapsPaymentCreatedCHAPS payment created
ChapsReturnCreatedChapsReturnCreatedCHAPS return created
CopOutboundResponseCopOutboundResponseCoP name check response received
MccyTransactionCreatedMccyTransactionCreatedMulti-currency transaction created
FxTradeCreatedFxTradeCreatedFX trade executed
FxTradeSettledFxTradeSettledFX trade settled
CustomerKycStatusChangedCustomerKycStatusChangedEmbedded Banking KYC status update
EmbeddedAccountCreatedEmbeddedAccountCreatedEmbedded account created
EmbeddedTransactionSettledEmbeddedTransactionSettledEmbedded account payment settled

Summary

Functions

Parses a webhook payload into a typed event struct based on the webhook type.

Functions

parse(type, payload)

@spec parse(String.t(), map()) :: {:ok, struct()} | {:error, :unknown_event_type}

Parses a webhook payload into a typed event struct based on the webhook type.

Returns {:ok, typed_event} or {:error, :unknown_event_type}.

Examples

{:ok, %ClearBank.Webhook{type: type, payload: payload}} = ClearBank.Webhook.parse(raw)
{:ok, event} = ClearBank.Webhook.Events.parse(type, payload)