> For the complete documentation index, see [llms.txt](https://developer.algbralabs.com/partner-banking/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.algbralabs.com/partner-banking/concepts/webhooks/supported-events.md).

# Supported Events

Below are the support events available for subscription. Contact your account manager for information on accessing custom events.

Examples shared below for each event type will be sent to your URL handler within the `payload`field of the HTTP request. You can check the full HTTP request structure below:

```json
{
	"event": "<event-name>",
	"eventId": "<unique event id>",
	"version": "<version-of-the-event-payload>",
	"payload": {
		// detailed payload fields vary per event type
	}
}
```

### Webhook Test Event

This event only sent when the webhook test API is triggered. Should only be used for connectivity testing purposes.

**Event Name:** `webhook.test`&#x20;

**Event Version:** 1

**Example Payload Field**

```json
{
    "response": "<data added to your test request>"
}
```

### Transaction State Events

Transactions having a complicated flow of execution. Especially, when you initiate payments using API platform. State change events are only triggered when a transaction state is changed to `COMPLETED`  `CANCELLED` and `FAILED` states. You won't get webhooks for interim state changes.

**Event Name:** `transaction.state-changed`&#x20;

**Event Version: 1**

**Example payload for Outbound Transfers**

```json
{
  "transactionId": "d73c211c-10dc-47a0-9397-499ec2136d02",
  "origin": "TRANSFER",
  "state": "COMPLETED",
  "category": "TRANSFERS",
  "impactType": "CREDIT",
  "customerId": "995674ee-79fa-4873-b6f5-67c43574baf0",
  "amount": 100,
  "currencyCode": "GBP",
  "description": "Sent from Algbra",
  "exchangeRate": "1",
  "exchangeCurrencyCode": "GBP",
  "transactionDate": "2025-01-27T12:32:02.824Z",
  "sourceCounterparty": {
    "type": "PERSONAL",
    "details": { "firstName": "John", "lastName": "Doe" },
    "accountCurrency": "GBP",
    "accountReference": { "accountNumber": "12345678", "sortCode": "010102" },
    "accountReferenceType": "UK_ACCOUNT"
  },
  "destinationCounterparty": {
    "type": "PERSONAL",
    "details": { "firstName": "Jane", "lastName": "Doe" },
    "accountCurrency": "GBP",
    "accountReference": { "accountNumber": "41610008", "sortCode": "100000" },
    "accountReferenceType": "UK_ACCOUNT"
  }
}
```

**Example payloads for Account Funding with PISP**

**Successful Funding**

```json
{
    "transactionId": "68c3ec214994440ce72afb9f",
    "uniqueToken": "4fa34e10-643c-4402-9bae-6015dd8b1856",
    "origin": "TRANSFER",
    "state": "COMPLETED",
    "category": "TRANSFERS",
    "impactType": "CREDIT",
    "customerId": "518829b7-ddfc-4d28-ace5-71e974284210",
    "amount": 750,
    "currencyCode": "GBP",
    "description": "Easy-Test-39659817",
    "exchangeRate": "1",
    "exchangeCurrencyCode": "GBP",
    "transactionDate": "2025-09-12T09:47:33.467Z",
    "sourceCounterparty": {
      "type": "PERSONAL",
      "details": {
        "firstName": "J &+ SANDBRIDGE",
        "lastName": "JR."
      },
      "accountCurrency": "GBP",
      "accountReference": {
        "accountNumber": "41610008",
        "sortCode": "100000"
      },
      "accountReferenceType": "UK_ACCOUNT"
    },
    "destinationCounterparty": {
      "type": "PERSONAL",
      "details": {
        "firstName": "Mikail",
        "lastName": "Bal"
      },
      "accountCurrency": "GBP",
      "accountReference": {
        "accountNumber": "12345678",
        "sortCode": "010102"
      },
      "accountReferenceType": "UK_ACCOUNT"
    },
    "transferMetadata": {
      "transactionProgress": [
        {
          "date": "2025-09-12T09:47:13.964Z",
          "event": "PLATFORM_VERIFIED"
        },
        {
          "date": "2025-09-12T09:47:31.082Z",
          "event": "PAYMENT_VERIFIED"
        },
        {
          "date": "2025-09-12T09:47:35.047Z",
          "event": "COMPLETED"
        }
      ],
      "fundingSourceProvider": {
        "id": "mock-payments-gb-redirect",
        "name": "Mock UK Payments - Redirect Flow",
        "type": "PISP"
      }
    }
  }
```

Failed Funding

```json
{
    "transactionId": "68c3e8a24994440ce72afb9d",
    "uniqueToken": "c8be4dd8-c577-47ba-889b-bf85ea24a823",
    "origin": "TRANSFER",
    "state": "FAILED",
    "category": "TRANSFERS",
    "impactType": "CREDIT",
    "customerId": "518829b7-ddfc-4d28-ace5-71e974284210",
    "amount": 500,
    "currencyCode": "GBP",
    "description": "Easy-Test-52716186",
    "exchangeRate": "1",
    "exchangeCurrencyCode": "GBP",
    "transactionDate": "2025-09-12T09:47:30.507Z",
    "transferMetadata": {
      "transactionProgress": [
        {
          "date": "2025-09-12T09:32:18.754Z",
          "event": "PLATFORM_VERIFIED"
        },
        {
          "date": "2025-09-12T09:47:30.507Z",
          "event": "CANCELLED"
        }
      ],
      "fundingSourceProvider": {
        "id": "mock-payments-gb-redirect",
        "name": "Mock UK Payments - Redirect Flow",
        "type": "PISP"
      }
    }
  }
```

### Account Lifecycle Events

Webhooks have the following account lifecycle events.

1. **`READY`**: This is the phase where the account is fully set up and operational for funding operations.
2. **`CLOSED`**: This marks the final phase in the lifecycle of an account. Reaching the terminated state implies that the account is no longer active and accessible. The transition to this state may result from various triggers, such as policy enforcement.&#x20;

**Event Name:** `account.state-changed`&#x20;

**Event Version: 1**

**Example payload for the Account State Change**

```json
{
  "id": "e0cab2dd-739f-43de-b131-3e423e935bf1",
  "customerId": "a2b9649e-df7f-4349-adff-1c57283fef10",
  "partnerId": "2ecf0e23-3215-462c-97c4-9e5a147656d7",
  "primaryAccountId": "ae66fcb2-2852-4568-990d-accc78572e4d",
  "type": "PRIMARY",
  "currencyCode": "GBP",
  "createDate": "2025-01-01",
  "identifiers": [
    {
      "type": "UK_ACCOUNT",
      "beneficiary": "John Doe",
      "bankAddress": "Threadneedle St, London EC2R 8AH, United Kingdom",
      "data": {
        "type": "UK_ACCOUNT",
        "sortCode": "010102",
        "accountNumber": "12345678"
      }
    }
  ],
  "state": "READY"
}
```

### Prospect Onboarding Events

The onboarding journey varies between personal users and business clients. Personal users typically require a straightforward journey, focusing on individual information about the prospect. In contrast, business prospects need a more complex onboarding process that requires additional information about the business structure. Therefore, the supporting events are different.

#### Personal prospect onboarding journey

**Event Name:** `onboarding.personal.state-changed`&#x20;

**Event Version: 1**

**Example payload for the Personal Onboarding State Changes**

```json
{
  "prospectId": "a2b9649e-df7f-4349-adff-1c57283fef10",
  "partnerId": "2ecf0e23-3215-462c-97c4-9e5a147656d7",
  "externalId": "123e4567-e89b-12d3-a456-426614174000",
  "onboardingState": "IDLE",
  "onboardingStateLastUpdate": "2025-10-21T11:11:47.628Z"
}
```

### Investment Settled Event

This event is triggered when an investment placement has been fully settled and becomes active on the platform. The webhook provides the finalised investment details including the invested amount, associated account references, settlement and maturity dates, and projected returns.

**Event Name:** `investment.settled`&#x20;

**Event Version: 1**

```json
{
  "id": "3d1651b8-7bf2-4378-aacb-4c38ab7edb87",
  "amount": 5500,
  "currencyCode": "GBP",
  "parentAccountId": "8c835a81-800c-4a77-9088-aa497ee69423",
  "virtualAccountId": "68dff177-0f1f-4f57-85e9-5ef71f91f253",
  "customerId": "b55ebee3-b267-4b04-81a8-56c226473727",
  "productVariantId": "ede8fe15-41e0-4a0b-8505-98b5699ae81d",
  "collectionDate": "2026-04-16T11:15:06.597Z",
  "placementDate": "2026-04-17T00:00:00.000Z",
  "maturityDate": "2026-04-17T00:00:00.000Z",
  "settlementDate": "2026-04-17T00:00:00.000Z",
  "returns": 150,
  "co2Avoided": 0,
  "cleanWaterImpacted": 0,
  "createDate": "2026-04-16T11:15:06.715Z",
  "updateDate": "2026-04-16T11:15:06.715Z"
}
```

### Automated Payment State Changed Events

This event is sent when an automated payment changes state.&#x20;

**Event Name:** `automated-payment.state-changed`&#x20;

**Event Version: 1**

```json
{
  "automatedPaymentId": "f2c0a6c8-0db0-4a54-8bb3-8d6c611cd42e",
  "type": "DIRECT_DEBIT",
  "customerId": "995674ee-79fa-4873-b6f5-67c43574baf0",
  "accountId": "4f1f41d1-4383-4b6d-bc8f-9c07a182b4f2",
  "state": "INITIATED",
  "reference": "UTILITY-BILL-MAY",
  "amount": 1250,
  "counterparty": {
    "type": "BUSINESS",
    "details": {
      "businessName": "UTILITY COMPANY LTD"
    },
    "accountCurrency": "GBP",
    "accountReference": {
      "accountNumber": "12345678",
      "sortCode": "010102"
    },
    "accountReferenceType": "UK_ACCOUNT"
  },
  "metadata": {
    "name": "UTILITY COMPANY LTD",
    "serviceUserNumber": "123456"
  },
  "effectiveTimestamp": "2026-05-22T12:32:02.824Z"
}
```

### Automated Payment Upcoming Transaction Events

This event is sent when an upcoming automated payment transaction is created. For direct debit payments, this notifies you that a collection has been received and matched to an automated payment before the payment is processed.

**Event Name:** `automated-payment.upcoming-transaction`&#x20;

**Event Version: 1**

```json
{
  "automatedPaymentId": "f2c0a6c8-0db0-4a54-8bb3-8d6c611cd42e",
  "type": "DIRECT_DEBIT",
  "customerId": "995674ee-79fa-4873-b6f5-67c43574baf0",
  "accountId": "4f1f41d1-4383-4b6d-bc8f-9c07a182b4f2",
  "reference": "UTILITY-BILL-MAY",
  "amount": 1250,
  "currencyCode": "GBP",
  "impactType": "DEBIT",
  "rails": "BACS",
  "processingDate": "2026-05-22",
  "hasSufficientBalance": true,
  "counterparty": {
    "type": "BUSINESS",
    "details": {
      "businessName": "UTILITY COMPANY LTD"
    },
    "accountCurrency": "GBP",
    "accountReference": {
      "accountNumber": "12345678",
      "sortCode": "010102"
    },
    "accountReferenceType": "UK_ACCOUNT"
  },
  "metadata": {
    "name": "UTILITY COMPANY LTD",
    "serviceUserNumber": "123456"
  }
}
```
