---
title: "Merchant account webhooks"
method: POST
path: "merchant_accounts"
tags: ["Merchant accounts"]
---

# Merchant account webhooks

`POST merchant_accounts` (webhook)

Sent to the webhook URI you registered in Console when you receive a payment not initiated through TrueLayer to your merchant account.

## Headers

- `Tl-Signature` string, required

## Payload

- union
  - WebhookExternalPaymentReceived
    - `type` 'external_payment_received', required
    - `event_version` 1, required: The version of the event schema.
    - `event_id` string, required: Unique ID of the event.
    - `transaction_id` string, required: Unique ID for the Transaction
    - `currency` 'GBP' | 'EUR' | 'PLN', required
    - `amount_in_minor` integer, required
    - `settled_at` string, datetime, required: Date and time the transaction settled
    - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
    - `remitter` object, required
      - `account_holder_name` string, required: The name of the external account holder.
      - `account_identifiers` AccountIdentifier[], required
        - union: A unique scheme identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `reference` string: The reference for the external payment.
  - WebhookBalanceNotification
    - `type` 'balance_notification', required
    - `event_version` 1, required: The version of the event schema.
    - `event_id` string, required: Unique ID of the event.
    - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
    - `current_balance_in_minor` integer, required: The current balance, expressed in the smallest denomination of the account's currency. The current balance does not take into consideration transactions that are not yet in a final state.
    - `available_balance_in_minor` integer, required: The balance immediately available to perform payouts and transfers, expressed in the smallest denomination of the account's currency. The available balance does also take into consideration transactions that are not yet in a final state.
    - `threshold_in_minor` integer: The balance threshold, expressed in the smallest denomination of the account's currency.
    - `status` 'approaching_threshold' | 'below_threshold' | 'recovered', required: Whether the balance is approaching the threshold, below the threshold, or has recovered.

## Acknowledgement `200`

Webhook Handled

---

[API](https://skmtc.dev/truelayer/apis/payments-api-v3.md) - [All operations](https://skmtc.dev/truelayer/apis/payments-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/payments-api-v3/revisions/a7c585fc9b84?raw)
