Lemon Markets · AsyncAPI Specification

Lemon Markets Brokerage Webhooks

Version

View Spec View on GitHub CompanyBrokerageTradingInvestingSecuritiesFinancial ServicesBanking as a ServiceFintechWealth ManagementEmbedded FinanceGermanyAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-19'
method: searched
source: https://developer.lemon.markets/docs/webhooks-setup
spec_type: Webhooks
asyncapi_published: false
note: 'lemon.markets publishes no AsyncAPI document. It does publish a full webhook surface: a registration
  API, a signed delivery contract, an event-replay endpoint, and an enumerated EventType list carried
  in the OpenAPI. That catalogue is captured here verbatim from the enum in the harvested spec plus the
  two webhook guides. No AsyncAPI has been synthesised.'
docs:
- https://developer.lemon.markets/docs/webhooks-setup
- https://developer.lemon.markets/docs/webhooks-implementation
- https://developer.lemon.markets/docs/mirror-data-using-events
transport:
  protocol: https
  style: webhook (server push) with a polling fallback
  method: POST
  polling_endpoint: GET /v1/events
  polling_operation: list_events
registration:
  create: POST /v1/webhooks
  list: GET /v1/webhooks
  delete: DELETE /v1/webhooks/{webhook_id}
  request_schema: CreateWebhookRequest
  response_schema: Webhook
  fields:
    url: endpoint invoked when a subscribed event occurs (max 2083 chars)
    events: unique, non-empty array of EventType values to subscribe to
  returns: webhook id (wbh_ prefix) and a signature_secret
security:
  signature_header: LMG-Signature
  format: t=<unix-seconds>,v1=<hex hmac-sha256>
  algorithm: HMAC-SHA256 over "<timestamp>.<raw request body>" keyed with the webhook signature_secret
  replay_protection: validate the t= timestamp against system time within a tolerance window
  test_vector:
    signature: t=0,v1=3523dcc0013f08dfa1855772441107330218793f399d7452bd3ff2159c6e0285
    signing_secret: '0000000000000000000000000000000000000000000000000000000000000000'
    request_body: '{}'
delivery:
  ack_deadline_seconds: 10
  ack_expectation: return 200 OK immediately and process asynchronously; slow acks trigger retries
  guarantee: at-least-once - consumers must dedupe on the event id
  ordering: not guaranteed across entities; consumers should partition on the entity id to preserve per-entity
    order
payload:
  schema: EventExternal
  fields:
    id: event identifier (evt_ prefix)
    type: EventType
    created_at: RFC 3339 timestamp of event creation
    context: polymorphic object of identifiers relating the event to its entities
  example:
    id: evt_a8b11a37eccc49ecacb372e3a92a184d
    type: account.created
    created_at: '2023-06-29T14:40:30.523373+00:00'
    context:
      account: cusa_33531f7f801d4ce997747470ab7208fd
  context_schemas:
  - AccountEventContext
  - BatchOrderEventContext
  - CustomerAccountCheckEventContext
  - CustomerWorkflowDocumentEventContext
  - CustomerWorkflowEventContext
  - CustomerWorkflowOrderTradeDocumentEventContext
  - DepositEventContext
  - DepositTransactionEventContext
  - DividendDistributionEventContext
  - DocumentEventContext
  - IdentificationEventContext
  - IncomeDistributionConfirmationDocumentEventContext
  - IncomeDistributionEventContext
  - OrderDocumentEventContext
  - OrderEventContext
  - OrderTradeDocumentEventContext
  - OrderWorkflowEventContext
  - PersonDataUpdateEventContext
  - SecuritiesAccountEventContext
  - SecuritiesTransferEventContext
  - SettlementEventContext
  - TaxExemptionOrderEventContext
  - TaxGeneralEventContext
  - TaxInstrumentTransactionEventContext
  - TradeEventContext
  - TradeSettledEventContext
  - TreasuryMandateEventContext
  - TreasuryTransferEventContext
  - TreasuryTransferSettlementEventContext
  - WithdrawalEventContext
  - WithdrawalTransactionEventContext
event_count: 83
event_groups:
- entity: account
  count: 4
  events:
  - account.closed
  - account.created
  - account.opened
  - account.rejected
- entity: batch_order
  count: 7
  events:
  - batch_order.accepted
  - batch_order.canceled
  - batch_order.canceling
  - batch_order.confirmed
  - batch_order.created
  - batch_order.executed
  - batch_order.rejected
- entity: cash_account
  count: 1
  events:
  - cash_account.created
- entity: check
  count: 5
  events:
  - check.action_required
  - check.processing
  - check.pending
  - check.succeeded
  - check.failed
- entity: corporate_action
  count: 2
  events:
  - corporate_action.created
  - corporate_action.processed
- entity: deposit
  count: 3
  events:
  - deposit.created
  - deposit.rejected
  - deposit.received
- entity: dividend_distribution
  count: 1
  events:
  - dividend_distribution.created
- entity: document
  count: 1
  events:
  - document.created
- entity: identification
  count: 4
  events:
  - identification.created
  - identification.failed
  - identification.started
  - identification.succeeded
- entity: income_distribution
  count: 1
  events:
  - income_distribution.created
- entity: order
  count: 7
  events:
  - order.accepted
  - order.canceled
  - order.canceling
  - order.confirmed
  - order.created
  - order.executed
  - order.rejected
- entity: securities_account
  count: 4
  events:
  - securities_account.created
  - securities_account.opened
  - securities_account.rejected
  - securities_account.closed
- entity: securities_transfer
  count: 2
  events:
  - securities_transfer.created
  - securities_transfer.completed
- entity: settlement
  count: 1
  events:
  - settlement.created
- entity: sweep
  count: 5
  events:
  - sweep.canceled
  - sweep.created
  - sweep.processed
  - sweep.rejected
  - sweep.started
- entity: tax
  count: 3
  events:
  - tax.canceled
  - tax.created
  - tax.processed
- entity: tax_exemption_order
  count: 5
  events:
  - tax_exemption_order.accepted
  - tax_exemption_order.canceled
  - tax_exemption_order.canceling
  - tax_exemption_order.created
  - tax_exemption_order.rejected
- entity: trade
  count: 3
  events:
  - trade.cash_settled
  - trade.created
  - trade.taxes_processed
- entity: treasury_mandate
  count: 5
  events:
  - treasury_mandate.accepted
  - treasury_mandate.canceled
  - treasury_mandate.confirmed
  - treasury_mandate.created
  - treasury_mandate.rejected
- entity: treasury_transfer
  count: 7
  events:
  - treasury_transfer.created
  - treasury_transfer.pending
  - treasury_transfer.processed
  - treasury_transfer.canceled
  - treasury_transfer.canceling
  - treasury_transfer.settled
  - treasury_transfer.rejected
- entity: update
  count: 3
  events:
  - update.created
  - update.succeeded
  - update.failed
- entity: withdrawal
  count: 6
  events:
  - withdrawal.accepted
  - withdrawal.canceled
  - withdrawal.confirmed
  - withdrawal.created
  - withdrawal.processed
  - withdrawal.rejected
- entity: workflow
  count: 3
  events:
  - workflow.created
  - workflow.confirmed
  - workflow.canceled
events:
- account.closed
- account.created
- account.opened
- account.rejected
- batch_order.accepted
- batch_order.canceled
- batch_order.canceling
- batch_order.confirmed
- batch_order.created
- batch_order.executed
- batch_order.rejected
- cash_account.created
- check.action_required
- check.processing
- check.pending
- check.succeeded
- check.failed
- corporate_action.created
- corporate_action.processed
- deposit.created
- deposit.rejected
- deposit.received
- dividend_distribution.created
- document.created
- identification.created
- identification.failed
- identification.started
- identification.succeeded
- income_distribution.created
- order.accepted
- order.canceled
- order.canceling
- order.confirmed
- order.created
- order.executed
- order.rejected
- securities_account.created
- securities_account.opened
- securities_account.rejected
- securities_account.closed
- securities_transfer.created
- securities_transfer.completed
- settlement.created
- sweep.canceled
- sweep.created
- sweep.processed
- sweep.rejected
- sweep.started
- tax.canceled
- tax.created
- tax.processed
- tax_exemption_order.accepted
- tax_exemption_order.canceled
- tax_exemption_order.canceling
- tax_exemption_order.created
- tax_exemption_order.rejected
- trade.cash_settled
- trade.created
- trade.taxes_processed
- treasury_mandate.accepted
- treasury_mandate.canceled
- treasury_mandate.confirmed
- treasury_mandate.created
- treasury_mandate.rejected
- treasury_transfer.created
- treasury_transfer.pending
- treasury_transfer.processed
- treasury_transfer.canceled
- treasury_transfer.canceling
- treasury_transfer.settled
- treasury_transfer.rejected
- update.created
- update.succeeded
- update.failed
- withdrawal.accepted
- withdrawal.canceled
- withdrawal.confirmed
- withdrawal.created
- withdrawal.processed
- withdrawal.rejected
- workflow.created
- workflow.confirmed
- workflow.canceled