Memo Bank · Schema

Transaction

CompanyFintech InsurtechBankingBusiness BankingPaymentsSEPASEPA Direct Debitvirtual-ibanWire TransfersOpen BankingPSD2Berlin GroupWebhookMCPFrance

Properties

Name Type Description
id string Unique ID of the transaction.
link string Link to this transaction in your Memo Bank workspace.
reference string Reference of the money movement. In case you initiate a transfer between two of your own accounts, both transactions (`debit` and `credit`) will have the same reference, it can be safely used to corre
account_id string ID of the account this transaction belongs to.
amount integer Amount of the transaction, in the smallest unit of the `currency`. The amount is always positive, use `direction` to give it a sign.
local_iban string IBAN through which this transaction got in or out of the account. Can be the main IBAN of the account or a virtual IBAN.
currency string Currency of the transaction amount, in ISO 4217 format.
direction string Direction of the transaction.
request_date string Date at which the transaction has been requested, in ISO8601 format. Usually the same as the execution date, except for scheduled transfers and transfer requests.
execution_date string Date at which the transaction processing has started or will start, in ISO8601 format. For debits, that’s when the money is removed from the available balance of the account.
accounting_date string Date at which the transaction has been confirmed, in ISO8601 format. For credits, that’s when the money is credited from the available balance of the account.
counterparty_name string Name of the counterparty.
internal_note string Internal note attached to this transaction, visible only in your Memo Bank workspace.
status string Current status of the transaction.
batch_id string ID of the batch this transaction belongs to, if any.
custom_id string Custom identifier attached to the transaction. It is not transmitted nor visible in your Memo Bank workspace. It can only be retrieved or used to search for transactions via Memo Bank API.
custom_metadata string Custom metadata attached to the transaction. It is not transmitted nor visible in your Memo Bank workspace and can only be retrieved via API.
attachment_count integer Number of documents attached to this transaction.
source object
View JSON Schema on GitHub

JSON Schema

memo-bank-transaction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/memo-bank/main/json-schema/memo-bank-transaction-schema.json",
  "title": "Transaction",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/memo-bank-transactions-api-openapi.yml#/components/schemas/Transaction",
  "required": [
    "account_id",
    "amount",
    "attachment_count",
    "counterparty_name",
    "currency",
    "direction",
    "execution_date",
    "id",
    "link",
    "local_iban",
    "reference",
    "request_date",
    "source",
    "status"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique ID of the transaction.",
      "format": "uuid"
    },
    "link": {
      "type": "string",
      "description": "Link to this transaction in your Memo Bank workspace."
    },
    "reference": {
      "type": "string",
      "description": "Reference of the money movement. In case you initiate a transfer between two of your own accounts, both transactions (`debit` and `credit`) will have the same reference, it can be safely used to correlate them.",
      "format": "uuid"
    },
    "account_id": {
      "type": "string",
      "description": "ID of the account this transaction belongs to.",
      "format": "uuid"
    },
    "amount": {
      "type": "integer",
      "description": "Amount of the transaction, in the smallest unit of the `currency`. The amount is always positive, use `direction` to give it a sign.",
      "format": "int64"
    },
    "local_iban": {
      "type": "string",
      "description": "IBAN through which this transaction got in or out of the account. Can be the main IBAN of the account or a virtual IBAN."
    },
    "currency": {
      "type": "string",
      "description": "Currency of the transaction amount, in ISO 4217 format."
    },
    "direction": {
      "type": "string",
      "description": "Direction of the transaction.",
      "enum": [
        "debit",
        "credit"
      ]
    },
    "request_date": {
      "type": "string",
      "description": "Date at which the transaction has been requested, in ISO8601 format. Usually the same as the execution date, except for scheduled transfers and transfer requests.",
      "format": "date-time"
    },
    "execution_date": {
      "type": "string",
      "description": "Date at which the transaction processing has started or will start, in ISO8601 format. For debits, that’s when the money is removed from the available balance of the account.",
      "format": "date-time"
    },
    "accounting_date": {
      "type": "string",
      "description": "Date at which the transaction has been confirmed, in ISO8601 format. For credits, that’s when the money is credited from the available balance of the account.",
      "format": "date-time"
    },
    "counterparty_name": {
      "type": "string",
      "description": "Name of the counterparty."
    },
    "internal_note": {
      "type": "string",
      "description": "Internal note attached to this transaction, visible only in your Memo Bank workspace."
    },
    "status": {
      "type": "string",
      "description": "Current status of the transaction.",
      "enum": [
        "scheduled",
        "authorized",
        "confirmed",
        "rejected",
        "canceled"
      ]
    },
    "batch_id": {
      "type": "string",
      "description": "ID of the batch this transaction belongs to, if any.",
      "format": "uuid"
    },
    "custom_id": {
      "type": "string",
      "description": "Custom identifier attached to the transaction. It is not transmitted nor visible in your Memo Bank workspace. It can only be retrieved or used to search for transactions via Memo Bank API."
    },
    "custom_metadata": {
      "type": "string",
      "description": "Custom metadata attached to the transaction. It is not transmitted nor visible in your Memo Bank workspace and can only be retrieved via API."
    },
    "attachment_count": {
      "type": "integer",
      "description": "Number of documents attached to this transaction.",
      "format": "int32"
    },
    "source": {
      "$ref": "#/$defs/TransactionSource"
    }
  },
  "$defs": {
    "BankAccountRemunerationSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "CardCreditSource": {
      "required": [
        "settlement_amount",
        "settlement_currency",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "settlement_amount": {
              "type": "integer",
              "description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
              "format": "int64"
            },
            "settlement_currency": {
              "type": "string",
              "description": "Settlement currency of the transaction amount, in ISO 4217 format."
            }
          }
        }
      ]
    },
    "CardDebitSource": {
      "required": [
        "settlement_amount",
        "settlement_currency",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "settlement_amount": {
              "type": "integer",
              "description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
              "format": "int64"
            },
            "settlement_currency": {
              "type": "string",
              "description": "Settlement currency of the transaction amount, in ISO 4217 format."
            }
          }
        }
      ]
    },
    "CardDeferredSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "CardWithdrawalSource": {
      "required": [
        "settlement_amount",
        "settlement_currency",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "settlement_amount": {
              "type": "integer",
              "description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
              "format": "int64"
            },
            "settlement_currency": {
              "type": "string",
              "description": "Settlement currency of the transaction amount, in ISO 4217 format."
            }
          }
        }
      ]
    },
    "CollectionIncomingReturnSource": {
      "required": [
        "returned_collection_reference",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_iban": {
              "type": "string",
              "description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this collection, visible to all involved parties."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
            },
            "returned_collection_reference": {
              "type": "string",
              "description": "Reference of the original collection being returned."
            },
            "reason": {
              "type": "string",
              "description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
              "enum": [
                "bank_identifier_incorrect",
                "blocked_account",
                "closed_account",
                "correspondent_bank_not_possible",
                "creditor_bank_is_not_registered",
                "creditor_psp_not_registered",
                "customer_deceased",
                "customer_disabled_direct_debit",
                "debtor_psp_not_registered",
                "disputed",
                "duplication",
                "end_customer_deceased",
                "eri_option_not_supported",
                "following_cancellation_request",
                "fraudulent_originated",
                "inactive_mandate",
                "inconsistent_with_end_customer",
                "incorrect_account_number",
                "insufficient_funds",
                "invalid_bank_operation_code",
                "invalid_code_or_format",
                "invalid_creditor_account_number",
                "invalid_debtor_account",
                "invalid_interbank_communication",
                "invalid_transaction_code_or_invalid_file_format",
                "mandate_mismatch",
                "missing_creditors_name_or_address",
                "missing_creditor_address",
                "missing_creditor_name_or_address",
                "missing_debtors_name_or_address",
                "missing_debtor_account_or_identification",
                "missing_debtor_name_or_address",
                "missing_mandatory_information_mandate",
                "no_mandate",
                "no_mandate_on_scheme",
                "not_specified_reason_agent_generated",
                "not_specified_reason_customer_generated",
                "psp_identifier_incorrect",
                "refund_request_by_bank",
                "refund_request_by_end_customer",
                "regulatory_reason",
                "requested_by_the_debtor",
                "requested_by_customer",
                "settlement_failed",
                "specific_service_offered_by_debtor_psp",
                "technical_problem",
                "transaction_forbidden",
                "transaction_unauthorized",
                "unrecognized_initiating_party",
                "wrong_amount"
              ]
            }
          }
        }
      ]
    },
    "CollectionIncomingSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_iban": {
              "type": "string",
              "description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this collection, visible to all involved parties."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
            }
          }
        }
      ]
    },
    "CollectionOutgoingReturnFeesSource": {
      "required": [
        "returned_collection_id",
        "returned_collection_reference",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_iban": {
              "type": "string",
              "description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this collection, visible to all involved parties."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
            },
            "returned_collection_id": {
              "type": "string",
              "description": "ID of the original collection being returned.",
              "format": "uuid"
            },
            "returned_collection_reference": {
              "type": "string",
              "description": "Reference of the original collection being returned."
            },
            "reason": {
              "type": "string",
              "description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
              "enum": [
                "bank_identifier_incorrect",
                "blocked_account",
                "closed_account",
                "correspondent_bank_not_possible",
                "creditor_bank_is_not_registered",
                "creditor_psp_not_registered",
                "customer_deceased",
                "customer_disabled_direct_debit",
                "debtor_psp_not_registered",
                "disputed",
                "duplication",
                "end_customer_deceased",
                "eri_option_not_supported",
                "following_cancellation_request",
                "fraudulent_originated",
                "inactive_mandate",
                "inconsistent_with_end_customer",
                "incorrect_account_number",
                "insufficient_funds",
                "invalid_bank_operation_code",
                "invalid_code_or_format",
                "invalid_creditor_account_number",
                "invalid_debtor_account",
                "invalid_interbank_communication",
                "invalid_transaction_code_or_invalid_file_format",
                "mandate_mismatch",
                "missing_creditors_name_or_address",
                "missing_creditor_address",
                "missing_creditor_name_or_address",
                "missing_debtors_name_or_address",
                "missing_debtor_account_or_identification",
                "missing_debtor_name_or_address",
                "missing_mandatory_information_mandate",
                "no_mandate",
                "no_mandate_on_scheme",
                "not_specified_reason_agent_generated",
                "not_specified_reason_customer_generated",
                "psp_identifier_incorrect",
                "refund_request_by_bank",
                "refund_request_by_end_customer",
                "regulatory_reason",
                "requested_by_the_debtor",
                "requested_by_customer",
                "settlement_failed",
                "specific_service_offered_by_debtor_psp",
                "technical_problem",
                "transaction_forbidden",
                "transaction_unauthorized",
                "unrecognized_initiating_party",
                "wrong_amount"
              ]
            }
          }
        }
      ]
    },
    "CollectionOutgoingReturnSource": {
      "required": [
        "returned_collection_id",
        "returned_collection_reference",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_iban": {
              "type": "string",
              "description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this collection, visible to all involved parties."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
            },
            "returned_collection_id": {
              "type": "string",
              "description": "ID of the original collection being returned.",
              "format": "uuid"
            },
            "returned_collection_reference": {
              "type": "string",
              "description": "Reference of the original collection being returned."
            },
            "reason": {
              "type": "string",
              "description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
              "enum": [
                "bank_identifier_incorrect",
                "blocked_account",
                "closed_account",
                "correspondent_bank_not_possible",
                "creditor_bank_is_not_registered",
                "creditor_psp_not_registered",
                "customer_deceased",
                "customer_disabled_direct_debit",
                "debtor_psp_not_registered",
                "disputed",
                "duplication",
                "end_customer_deceased",
                "eri_option_not_supported",
                "following_cancellation_request",
                "fraudulent_originated",
                "inactive_mandate",
                "inconsistent_with_end_customer",
                "incorrect_account_number",
                "insufficient_funds",
                "invalid_bank_operation_code",
                "invalid_code_or_format",
                "invalid_creditor_account_number",
                "invalid_debtor_account",
                "invalid_interbank_communication",
                "invalid_transaction_code_or_invalid_file_format",
                "mandate_mismatch",
                "missing_creditors_name_or_address",
                "missing_creditor_address",
                "missing_creditor_name_or_address",
                "missing_debtors_name_or_address",
                "missing_debtor_account_or_identification",
                "missing_debtor_name_or_address",
                "missing_mandatory_information_mandate",
                "no_mandate",
                "no_mandate_on_scheme",
                "not_specified_reason_agent_generated",
                "not_specified_reason_customer_generated",
                "psp_identifier_incorrect",
                "refund_request_by_bank",
                "refund_request_by_end_customer",
                "regulatory_reason",
                "requested_by_the_debtor",
                "requested_by_customer",
                "settlement_failed",
                "specific_service_offered_by_debtor_psp",
                "technical_problem",
                "transaction_forbidden",
                "transaction_unauthorized",
                "unrecognized_initiating_party",
                "wrong_amount"
              ]
            }
          }
        }
      ]
    },
    "CollectionOutgoingSource": {
      "required": [
        "collection_id",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_iban": {
              "type": "string",
              "description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this collection, visible to all involved parties."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
            },
            "collection_id": {
              "type": "string",
              "description": "ID of the collection that created this transaction.",
              "format": "uuid"
            }
          }
        }
      ]
    },
    "DebtPurchaseApplicationFeesSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "DebtPurchaseDisbursementSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "DebtPurchaseInterestsSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "DebtPurchaseRepaymentSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "DiverseOperationSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "InvestmentRedemptionOrderDTO": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "InvestmentSubscriptionOrderDTO": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "LoanApplicationFeesSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "LoanDisbursementSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "LoanGuaranteeFeeSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "LoanReimbursementSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "LoanRepaymentSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "MaintenanceTransferSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "MaintenanceWireTransferSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "OverdraftAgiosSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "OverdraftApplicationFeesSource": {
      "required": [
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        }
      ]
    },
    "RtgsTransferIncomingReturnSource": {
      "required": [
        "counterparty_account_number",
        "reason",
        "returned_transfer_reference",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_account_number": {
              "type": "string",
              "description": "Account number of the counterparty."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
            },
            "returned_transfer_reference": {
              "type": "string",
              "description": "Reference of the original transfer being returned."
            },
            "reason": {
              "type": "string",
              "description": "Reason for the return of the original transfer.",
              "enum": [
                "bank_identifier_incorrect",
                "blocked_account",
                "closed_account",
                "correspondent_bank_not_possible",
                "creditor_bank_is_not_registered",
                "creditor_psp_not_registered",
                "customer_deceased",
                "customer_disabled_direct_debit",
                "debtor_psp_not_registered",
                "disputed",
                "duplication",
                "end_customer_deceased",
                "eri_option_not_supported",
                "following_cancellation_request",
                "fraudulent_originated",
                "inactive_mandate",
                "inconsistent_with_end_customer",
                "incorrect_account_number",
                "insufficient_funds",
                "invalid_bank_operation_code",
                "invalid_code_or_format",
                "invalid_creditor_account_number",
                "invalid_debtor_account",
                "invalid_interbank_communication",
                "invalid_transaction_code_or_invalid_file_format",
                "mandate_mismatch",
                "missing_creditors_name_or_address",
                "missing_creditor_address",
                "missing_creditor_name_or_address",
                "missing_debtors_name_or_address",
                "missing_debtor_account_or_identification",
                "missing_debtor_name_or_address",
                "missing_mandatory_information_mandate",
                "no_mandate",
                "no_mandate_on_scheme",
                "not_specified_reason_agent_generated",
                "not_specified_reason_customer_generated",
                "psp_identifier_incorrect",
                "refund_request_by_bank",
                "refund_request_by_end_customer",
                "regulatory_reason",
                "requested_by_the_debtor",
                "requested_by_customer",
                "settlement_failed",
                "specific_service_offered_by_debtor_psp",
                "technical_problem",
                "transaction_forbidden",
                "transaction_unauthorized",
                "unrecognized_initiating_party",
                "wrong_amount"
              ]
            }
          }
        }
      ]
    },
    "RtgsTransferIncomingSource": {
      "required": [
        "counterparty_account_number",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_account_number": {
              "type": "string",
              "description": "Account number of the counterparty."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
            },
            "message": {
              "type": "string",
              "description": "Message attached to this transfer, visible to all involved parties."
            }
          }
        }
      ]
    },
    "RtgsTransferOutgoingReturnSource": {
      "required": [
        "counterparty_account_number",
        "reason",
        "returned_transfer_reference",
        "type"
      ],
      "type": "object",
      "allOf": [
        {
          "$ref": "#/$defs/TransactionSourceDiscriminator"
        },
        {
          "type": "object",
          "properties": {
            "counterparty_account_number": {
              "type": "string",
              "description": "Account number of the counterparty."
            },
            "counterparty_bank_bic": {
              "type": "string",
              "description": "BIC of the counterparty's bank."
            },
            "end_to_end_id": {
              "type": "string",
              "description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
            },
            "returned_transfer_reference": {
              "type": "string",
              "description": "Reference of the original transfer being returned."
            },
            "reason": {
              "type": "string",
              "description": "Reason for the return of the original transfer.",
              "enum": [
                "bank_identifier_incorrect",
                "blocked_account",
                "closed_account",
                "correspondent_bank_not_possible",
                "creditor_bank_is_not_registered",
                "creditor_psp_not_registered",
                "customer_deceased",
                "customer_disabled_direct_debit",
                "debtor_psp_not_registered",
                "disputed",
                "duplication",
          

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/memo-bank/refs/heads/main/json-schema/memo-bank-transaction-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/memo-bank-transaction"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.