Developer

Partner Docs

Merchant Docs

Refund Webhooks

Banked provides several webhook notifications to keep you informed about the status of a refund. These webhooks allow you to track the progress of a refund from initiation to completion or failure.

This guide will explain the following:

  1. Refund Webhook Types: Overview of the different webhook types available.
  2. Refund Webhook Payloads: Detailed examples of the JSON payloads for each refund webhook type.

Refund Webhook Types

Below is a summary of the available webhook types for Mandate and AccountToAccount refunds:

WebhookDescription
Refund PendingIndicates that the Refund has been authorized but Banked has not yet received confirmation that the Refund has left the merchant's account.
Refund SentIndicates that the Refund has left the merchant's account and is now within the Refund network.
Refund FailedIndicates that the Refund was not authorized by the merchants's account.

Each webhook includes a JSON payload with detailed information about the Refund. Refer to the sections below to view examples and learn more about each webhook type.

Refund Webhook Payloads

Below are examples of the JSON payloads for each refund webhook type for both Mandate and AccountToAccount refunds. Note that the structure of the payloads is similar besides the mandate field, which is only present for mandated refunds.

Refund Pending

The Refund Pending notification indicates that the Refund has yet to be concluded.

The JSON below shows an example of a pending notification payload:

json
{
  "data": {
    "amount": 1,
    "created_at": "2025-05-22T10:26:55.815053234Z",
    "currency": "AUD",
    "debtor_account": {
      "account_type": "BANKED_BANK_ACCOUNT_ENTITY",
      "bank_account_id": "71dd52df-b05b-41fb-9a28-16c543a1abf6"
    },
    "expiration": "2025-06-21T10:26:55.815054084Z",
    "id": "eec4e4be-40ce-4c81-a6bc-3e24f1ad0667",
    "mandate": { // Note: this field is returned only for mandated refunds
      "id": "3f80b430-4127-46f9-a86f-3ce18a02a53d"
    },
    "metadata": {
      "key1": "value",
      "key2": "value"
    },
    "original_payin_information": {
      "amount": 10000,
      "id": "82a649c5-af14-474a-997a-b25b0d3f45be"
    },
    "payment_identification": {
      "end_to_end_identification": "end-to-end-id"
    },
    "remittance_information": {
      "structured": {
        "creditor_reference_information": {
          "reference": ""
        }
      }
    },
    "status_details": {
      "status": "PENDING"
    },
    "updated_at": "2025-05-22T10:26:55.863891998Z"
  },
  "id": "3a7e0e66-3b15-496a-8948-458a0a50488e",
  "type": "refund_pending",
  "version": "v3"
}

Refund Sent

The Refund Sent notification indicates that the Refund has been successfully concluded.

The JSON below shows an example of a sent notification payload:

json
{
  "data": {
    "amount": 1,
    "created_at": "2025-05-22T10:26:55.815053234Z",
    "currency": "AUD",
    "debtor_account": {
      "account_type": "BANKED_BANK_ACCOUNT_ENTITY",
      "bank_account_id": "71dd52df-b05b-41fb-9a28-16c543a1abf6"
    },
    "expiration": "2025-06-21T10:26:55.815054084Z",
    "id": "eec4e4be-40ce-4c81-a6bc-3e24f1ad0667",
    "mandate": { // Note: this field is returned only for mandated refunds
      "id": "3f80b430-4127-46f9-a86f-3ce18a02a53d"
    },
    "metadata": {
      "key1": "value",
      "key2": "value"
    },
    "original_payin_information": {
      "amount": 10000,
      "id": "82a649c5-af14-474a-997a-b25b0d3f45be"
    },
    "payment_identification": {
      "end_to_end_identification": "end-to-end-id"
    },
    "remittance_information": {
      "structured": {
        "creditor_reference_information": {
          "reference": ""
        }
      }
    },
    "status_details": {
      "status": "SENT"
    },
    "updated_at": "2025-05-22T10:26:55.863891998Z"
  },
  "id": "3a7e0e66-3b15-496a-8948-458a0a50488e",
  "type": "refund_sent",
  "version": "v3"
}

Refund Failed

The Refund Failed notification indicates that the Refund was unsuccessful.

The JSON below shows an example of a failed notification payload:

json
{
  "data": {
    "amount": 1,
    "created_at": "2025-05-22T10:26:55.815053234Z",
    "currency": "AUD",
    "debtor_account": {
      "account_type": "BANKED_BANK_ACCOUNT_ENTITY",
      "bank_account_id": "71dd52df-b05b-41fb-9a28-16c543a1abf6"
    },
    "expiration": "2025-06-21T10:26:55.815054084Z",
    "id": "eec4e4be-40ce-4c81-a6bc-3e24f1ad0667",
    "mandate": { // Note: this field is returned only for mandated refunds
      "id": "3f80b430-4127-46f9-a86f-3ce18a02a53d"
    },
    "metadata": {
      "key1": "value",
      "key2": "value"
    },
    "original_payin_information": {
      "amount": 10000,
      "id": "82a649c5-af14-474a-997a-b25b0d3f45be"
    },
    "payment_identification": {
      "end_to_end_identification": "end-to-end-id"
    },
    "remittance_information": {
      "structured": {
        "creditor_reference_information": {
          "reference": ""
        }
      }
    },
    "status_details": {
      "reason": {
        "code": "MANDATE_INELIGIBLE_AMOUNT_EXCEEDED",
        "message": "Amount Requested Exceeds Mandate Limit"
      },
      "status": "FAILED"
    },
    "updated_at": "2025-05-22T10:26:56.086017458Z"
  },
  "id": "7095c887-b186-4f9a-8788-2128d4ab5303",
  "type": "refund_failed",
  "version": "v3"
}

© 2025 Banked Ltd.

Dark Theme
PrivacyTerms