Memo Bank · AsyncAPI Specification
Memo Bank Webhooks
Version
View Spec
View on GitHub
CompanyFintech InsurtechBankingBusiness BankingPaymentsSEPASEPA Direct Debitvirtual-ibanWire TransfersOpen BankingPSD2Berlin GroupWebhookMCPFranceAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-17'
method: searched
source:
- openapi/memo-bank-premium-bank-api-openapi.yml
- https://docs.api.memo.bank/group/webhook-webhook
- https://docs-marketplace.api.memo.bank/topic/topic-webhooks
- https://memo.bank/en/product/api/
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
Memo Bank publishes NO AsyncAPI document. Probed https://docs.api.memo.bank/asyncapi.yaml,
/asyncapi.json and https://api.memo.bank/asyncapi.yaml on 2026-08-17 - all 404. The event surface is
real and well specified, but it is expressed through the OpenAPI 3.1 top-level `webhooks` object rather
than AsyncAPI. This catalogue is therefore captured from that webhooks block plus the prose docs; no
AsyncAPI has been fabricated.
transport:
protocol: HTTPS webhook POST
direction: Memo Bank -> subscriber
delivery_url_requirement: Must use HTTPS (stated on the CreateWebhook schema).
content_types:
- application/json
- application/vnd.memo-bank.v1+json
content_type_note: >-
The versioned vendor media type carries the same Event schema, giving subscribers a media-type
versioning lever independent of the /v2/ path version.
authentication:
mechanism: bearer token issued by Memo Bank per webhook
header: Authorization
detail: >-
Creating a webhook returns a bearer_token which Memo Bank includes in the Authorization header of every
delivery to that endpoint. The subscriber verifies it to authenticate the sender.
signature: none
signature_note: >-
There is no HMAC request signature and no timestamp header, so deliveries are authenticated by a
shared bearer secret rather than a per-payload signature. That means a subscriber cannot detect
replay, and the secret is exposed to anyone who can read the webhook resource. An HMAC signature over
the body with a timestamp would be the standard hardening here.
retry_policy: >-
Memo Bank states a retry policy exists and that an event with the same id may be sent multiple times on
error, but the backoff schedule and maximum attempt count are not published.
ordering: not guaranteed / not published
management:
api_managed: true
operations:
- listWebhooks
- createWebhook
- getWebhook
- deleteWebhook
introduced: '2026-03-18'
fields:
id: uuid
name: human label for the webhook
url: HTTPS delivery target
bearer_token: token Memo Bank sends in the Authorization header
update_supported: false
update_note: >-
There is no update operation - a webhook is created and deleted, so changing a delivery URL means
tearing down and re-registering, and the bearer token rotates with it.
idempotency:
contract: >-
Event.id is a UUID and Memo Bank documents it explicitly as the deduplication key: an event with the
same id can be sent multiple times in case of error but should only be processed once.
key_field: id
message:
name: Event
schema_ref: openapi/memo-bank-premium-bank-api-openapi.yml#/components/schemas/Event
operation_id: handleEvent
required:
- id
- date
- event_type
- resource_id
- resource_type
fields:
id: UUID of the event; the idempotency key.
date: Event creation date, ISO 8601 date-time.
event_type: One of 34 enumerated event types.
resource_type: One of 11 enumerated resource types.
resource_id: UUID of the resource the event refers to.
payload_style: >-
Thin/reference payload. The event carries only identifiers and a type - not the changed resource - so a
subscriber must call the corresponding GET operation to fetch state. This is the safer pattern for
banking data but doubles the round trips.
extensibility_contract: >-
Memo Bank reserves the right to add EventType and ResourceType members without a version bump, and
states subscribers must handle additions gracefully.
marketplace_extension:
header: X-Memo-Connection-Id
purpose: >-
Identifies which marketplace connection an event belongs to, so a multi-tenant application can route the
event to the right customer context.
webhook_scoping: >-
Webhooks created with a marketplace OAuth access token are tied to that connection, allowing a distinct
URL per connected customer. Memo Bank can alternatively configure one global webhook for the whole
application.
source: https://docs-marketplace.api.memo.bank/topic/topic-webhooks
event_count: 34
resource_type_count: 11
resource_types:
- account
- attachment
- collection
- iban
- transaction
- transfer
- wire_transfer
- bulk_transfers
- bulk_collections
- mandate_signature_request
- account_assessment
events:
- group: account
types:
- event_type: account_created
resource_type: account
- event_type: account_updated
resource_type: account
- event_type: account_closed
resource_type: account
- group: attachment
types:
- event_type: attachment_created
resource_type: attachment
- event_type: attachment_deleted
resource_type: attachment
- group: iban
types:
- event_type: iban_created
resource_type: iban
- event_type: iban_updated
resource_type: iban
- event_type: iban_deleted
resource_type: iban
- group: transaction
types:
- event_type: transaction_scheduled
resource_type: transaction
- event_type: transaction_authorized
resource_type: transaction
- event_type: transaction_confirmed
resource_type: transaction
- event_type: transaction_rejected
resource_type: transaction
- event_type: transaction_canceled
resource_type: transaction
- group: transfer (SEPA)
types:
- event_type: transfer_confirmed
resource_type: transfer
- event_type: transfer_returned
resource_type: transfer
- event_type: transfer_canceled
resource_type: transfer
- event_type: transfer_failed
resource_type: transfer
- group: wire transfer (SWIFT/RTGS)
types:
- event_type: wire_transfer_confirmed
resource_type: wire_transfer
- event_type: wire_transfer_returned
resource_type: wire_transfer
- event_type: wire_transfer_canceled
resource_type: wire_transfer
- event_type: wire_transfer_failed
resource_type: wire_transfer
- event_type: wire_transfer_attachment_required
resource_type: wire_transfer
note: >-
A compliance-driven event - the bank is asking for supporting documentation before the wire proceeds,
which an integrator can satisfy with createWireTransferAttachment.
- group: collection (SEPA Direct Debit)
types:
- event_type: collection_confirmed
resource_type: collection
- event_type: collection_returned
resource_type: collection
- event_type: collection_canceled
resource_type: collection
- event_type: collection_failed
resource_type: collection
- group: bulk
types:
- event_type: bulk_transfers_completed
resource_type: bulk_transfers
- event_type: bulk_collections_completed
resource_type: bulk_collections
- group: mandate signature request
types:
- event_type: mandate_signature_request_sent
resource_type: mandate_signature_request
- event_type: mandate_signature_request_expired
resource_type: mandate_signature_request
- event_type: mandate_signature_request_completed
resource_type: mandate_signature_request
- event_type: mandate_signature_request_deleted
resource_type: mandate_signature_request
- group: account assessment
types:
- event_type: account_assessment_completed
resource_type: account_assessment
- event_type: account_assessment_failed
resource_type: account_assessment
lifecycle_coverage:
assessment: >-
Every asynchronous state machine in the product emits terminal events in both directions. Transfers,
wire transfers and collections each publish confirmed / returned / canceled / failed; transactions
publish the full scheduled -> authorized -> confirmed path plus rejected and canceled; bulk batches
signal completion; mandates and assessments signal both success and failure. For reconciliation
purposes this is complete - a subscriber never has to poll to discover a terminal outcome.
gaps:
- No AsyncAPI document, so the event surface is invisible to AsyncAPI tooling and event catalogues.
- >-
No HMAC payload signature or timestamp header - deliveries are authenticated with a static bearer token
only, leaving no replay protection.
- No published retry schedule or maximum attempt count.
- No webhook update operation; changing a URL forces re-registration and rotates the bearer token.
- No event-type subscription filter is documented, so a subscriber appears to receive all 34 types.
- No delivery-log or event-replay endpoint for recovering missed events after an outage.
Work with this as data
Every AsyncAPI spec 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 asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/memo-bank-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.