← Back to Docs
Ubyx Platform Settlement AsyncAPI 1.0-beta

AsyncAPI specification for Ubyx Platform Settlement asynchronous events. This document describes the event-driven architecture and event messaging for clearing transaction events between the Settlement Platform and external systems.

CloudEvents Format

All events published by Ubyx Platform follow the CloudEvents v1.0 specification. Events are wrapped in a CloudEvent envelope with standardized metadata.

Important: Events use structured mode CloudEvents binding for Message Broker:

  • The full CloudEvent (including all mandatory attributes and business data) is placed in the message value (body) as a single JSON object.

This mode simplifies integration for consumers that are not yet prepared to handle CloudEvents attributes in message headers.

Subject Correlation Best Practice

Recommended approach for subject field:

  1. For initial requests (conversion-request): Use any partner-defined correlation ID
  2. For response actions (approvals, rejections): Use the workflowId from the corresponding Ubyx outbound event

Example Flow:

1. Partner sends: conversion-request with subject: "partner-conversion-request-001"
2. Ubyx responds: conversion.created with subject: "notification-conversion-created-request-conversion-123e4567"
3. Partner responds: issuer-approval with subject: "notification-conversion-created-request-conversion-123e4567"

This creates perfect event correlation and simplifies debugging across both systems.

Schema Versioning (URN Format)

Event schemas are identified using URN (Uniform Resource Name) format: urn:ubyx:clearing:schema:{version}

Version Status Description
1.0-beta Current MVP/Early adopter version
1.0 Planned Stable production version (post-validation)
  • #Clearing
  • #Outbound
  • #Inbound

Servers

  • broker-sandbox.ubyx-platform.com:9092kafka-securesandbox

    Sandbox Broker Server

    Security:
    • X509:

      Mutual TLS required for all Broker servers - Ubyx Platform

      security.protocol:SSL
  • broker.ubyx-platform.com:9092kafka-secureproduction

    Production Broker Server

    Security:
    • X509:

      Mutual TLS required for all Broker servers - Ubyx Platform

      security.protocol:SSL

Operations

  • SUB ubyx.outbound

    Stream of clearing transaction events emitted by the platform. This topic is partitioned by institutionId to guarantee ordering.

    Consumer Configuration:

    • group.id: Use your institutionId (UUID)
    • client.id: Use your institutionId (UUID)
    • topic: ubyx.outbound

    Runtime Safety: Validate that message.data.institutionId matches your ID.

    Event Types (December 2025 - Hierarchical Format):

    • ubyx.clearing.conversion.created - New conversion initiated
    • ubyx.clearing.conversion.completed - Conversion successfully completed
    • ubyx.clearing.conversion.failed - Conversion failed or rejected
    • ubyx.clearing.settlement.approved - Settlement approved by all parties
    • ubyx.clearing.settlement.confirmed - Settlement confirmed by settlers

    Receive clearing status updates

    Consumes real-time CloudEvents regarding transaction lifecycle changes (Created, Approved, Rejected). Use Case: Keep local partner systems synchronized with the Settlement Platform state.

    Operation IDconsumeOutboundEvents

    Available only on servers:

    object
    object
    • #Clearing
    • #Outbound

    Accepts the following message:

    Clearing Transaction CloudEventoutbound:clearing-cloudevent

    Generic envelope for all outbound clearing events.

    Message IDoutbound:clearing-cloudevent
    object

    Full CloudEvent v1.0 envelope (structured mode)

    object

    Examples

  • PUB ubyx.inbound

    Ingestion channel for clearing transaction actions from external partners.

    Producer Configuration:

    • client.id: Use your institutionId (UUID)
    • topic: ubyx.inbound
    • Message Key (Partition Key): MANDATORY use the institutionId (UUID) as the message key.
      This guarantees ordering per institution and even load distribution across partitions.

    Events must follow CloudEvents v1.0 specification in structured mode.

    Publish clearing actions

    Sends business actions (approvals, requests, confirmations) to the Settlement Platform. Each event type triggers specific workflow transitions.

    Operation IDsendInboundEvents

    Available only on servers:

    object
    object
    • #Clearing
    • #Inbound

    Accepts one of the following messages:

    • #0Conversion Request Eventinbound:conversion-request

      New conversion request received from partner institution

      Message IDinbound:conversion-request
      object
      object

      Examples

    • #1Issuer Approval Eventinbound:issuer-approval

      Issuer approved the conversion request

      Message IDinbound:issuer-approval
      object
      object

      Examples

    • #2Issuer Reject Eventinbound:issuer-reject

      Issuer rejected the conversion request

      Message IDinbound:issuer-reject
      object
      object

      Examples

    • #3Asset Settler Approval Eventinbound:asset-settler-approval

      Asset settler approved the settlement

      Message IDinbound:asset-settler-approval
      object
      object

      Examples

    • #4Cash Settler Approval Eventinbound:cash-settler-approval

      Cash settler approved the settlement

      Message IDinbound:cash-settler-approval
      object
      object

      Examples

    • #5Asset Settler Confirm Eventinbound:asset-settler-confirm

      Asset Settler confirmed the settlement completion

      Message IDinbound:asset-settler-confirm
      object
      object

      Examples

    • #6Cash Settler Confirm Eventinbound:cash-settler-confirm

      Cash Settler confirmed the settlement completion

      Message IDinbound:cash-settler-confirm
      object
      object

      Examples

    • #7Asset Settler Reject Confirm Eventinbound:asset-settler-reject-confirm

      Asset Settler rejected at confirmation stage

      Message IDinbound:asset-settler-reject-confirm
      object
      object

      Examples

    • #8Cash Settler Reject Confirm Eventinbound:cash-settler-reject-confirm

      Cash Settler rejected at confirmation stage

      Message IDinbound:cash-settler-reject-confirm
      object
      object

      Examples

    • #9Asset Settler Reject Approve Eventinbound:asset-settler-reject-approve

      Asset Settler rejected at approval stage

      Message IDinbound:asset-settler-reject-approve
      object
      object

      Examples

    • #10Cash Settler Reject Approve Eventinbound:cash-settler-reject-approve

      Cash Settler rejected at approval stage

      Message IDinbound:cash-settler-reject-approve
      object
      object

      Examples

Messages

  • #1Clearing Transaction CloudEventoutbound:clearing-cloudevent

    Generic envelope for all outbound clearing events.

    Message IDoutbound:clearing-cloudevent
    object

    Full CloudEvent v1.0 envelope (structured mode)

    object
  • #2Conversion Request Eventinbound:conversion-request

    New conversion request received from partner institution

    Message IDinbound:conversion-request
    object
    object
  • #3Issuer Approval Eventinbound:issuer-approval

    Issuer approved the conversion request

    Message IDinbound:issuer-approval
    object
    object
  • #4Issuer Reject Eventinbound:issuer-reject

    Issuer rejected the conversion request

    Message IDinbound:issuer-reject
    object
    object
  • #5Asset Settler Approval Eventinbound:asset-settler-approval

    Asset settler approved the settlement

    Message IDinbound:asset-settler-approval
    object
    object
  • #6Cash Settler Approval Eventinbound:cash-settler-approval

    Cash settler approved the settlement

    Message IDinbound:cash-settler-approval
    object
    object
  • #7Asset Settler Confirm Eventinbound:asset-settler-confirm

    Asset Settler confirmed the settlement completion

    Message IDinbound:asset-settler-confirm
    object
    object
  • #8Cash Settler Confirm Eventinbound:cash-settler-confirm

    Cash Settler confirmed the settlement completion

    Message IDinbound:cash-settler-confirm
    object
    object
  • #9Asset Settler Reject Confirm Eventinbound:asset-settler-reject-confirm

    Asset Settler rejected at confirmation stage

    Message IDinbound:asset-settler-reject-confirm
    object
    object
  • #10Cash Settler Reject Confirm Eventinbound:cash-settler-reject-confirm

    Cash Settler rejected at confirmation stage

    Message IDinbound:cash-settler-reject-confirm
    object
    object
  • #11Asset Settler Reject Approve Eventinbound:asset-settler-reject-approve

    Asset Settler rejected at approval stage

    Message IDinbound:asset-settler-reject-approve
    object
    object
  • #12Cash Settler Reject Approve Eventinbound:cash-settler-reject-approve

    Cash Settler rejected at approval stage

    Message IDinbound:cash-settler-reject-approve
    object
    object

Schemas

  • PartitionKey
    string
    format: uuid

    Partition Key (Mandatory) Must be the institutionId (UUID). Ensures that all events for the same institution land on the same partition, guaranteeing sequential processing order (FIFO).

  • object

    Full CloudEvent v1.0 envelope (structured mode)

  • object
  • object
  • object
  • object
  • object
  • object
  • object
  • object

    Business payload for clearing transaction events (Updated December 2025).

  • object

    Contains only contract-specific information, cleaned of system-added fields.

  • ClearingTransactionType
    string
      Allowed values:
    • "CONVERSION"
    • "REDEMPTION"
    • "MINTING"
    • "ERROR"
  • ClearingTransactionStatus
    string

    High-level transaction status for SSE notification alignment

      Allowed values:
    • "INITIATED"
    • "PROCESSING"
    • "COMPLETED"
    • "FAILED"
    • "CONFIRMED"
  • object

    Payload for conversion request events

  • object

    Payload for issuer approval events

  • object

    Payload for issuer reject events

  • object

    Payload for settler approval events (asset/cash)

  • object

    Payload for settler confirm events

  • object

    Payload for settler reject events