Skip to main content

Payment Schedule Generation

This chapter details how the payment schedule (calendar) is established for a newly issued bond. The generation of this schedule is the foundation for all future automated payouts, originating in the Core System (Registry) and finalizing in the Core Payment Service.

Business Flow

  1. Bond Issuance Finalization (Registry Service):

    • Following the successful onboarding of the Issuer (SME), the bond issuance process is triggered within the Core System (Registry).
    • The bond terms include critical financial parameters such as Issue Date, Maturity Date, Coupon Type (e.g., fixed or zero-coupon), and Coupon Frequency (e.g., annual, semi-annual, monthly).
  2. Schedule Computation & Smart Contract Deployment (Registry Service):

    • The Core System (Registry) is responsible for computing the exact payment intervals (the payment calendar logic).
    • It translates the Issue Date and Maturity Date into chronological intervals mapped to the Coupon Frequency.
    • These computed arrays are dispatched as part of the bond initialization payload (BondInput) to the Blockchain Network smart contract.
  3. Event Interception (Blockchain Event Service):

    • Once the bond is securely published on-chain, the Blockchain Event Service indexes the transaction and broadcasts a BondPublishedEvent to the internal Kafka message bus.
  4. Schedule Materialization (Core Payment Service):

    • The Core Payment Service consumes the BondPublishedEvent.
    • It automatically generates the physical off-chain calendar (Paydays), extracting the rates and payment intervals stored on-chain.
    • For ZERO_COUPON bonds, no interest paydays are generated. A final PRINCIPAL payday is unconditionally created and scheduled precisely for the Maturity Date.
    • Each calculated date is persisted off-chain as a PENDING Payday entity in the Payment Database. These entities remain dormant until their scheduled execution date arrives.

Sequence Diagram