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 |
JSON Schema
{
"$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.
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.