Skip to main content
Create a prepaid recurring payment agreement with an app party. The client locks funds upfront for a fixed period, enabling subsequent pay-outs without additional on-chain approvals. Invoked through the two-phase transaction flow with:
  • operation = TRANSACTION_OPERATION_REQUEST_RECURRING_PREPAID
  • params.request_recurring_prepaid = RequestRecurringPrepaidParams { … }

Params

app_party
string
required
Party ID of the app receiving the recurring payments.
amount
string
required
Payment amount per cycle.
locked_amount
string
required
Amount of Canton Coin locked upfront as prepayment.
lock_days
uint32
required
How many days the prepayment remains locked.
limit
string
required
Maximum total amount the app can draw over the lifetime of the agreement.
description
string (optional)
Human-readable description.
reference
string (optional)
Client-supplied reference.
message RequestRecurringPrepaidParams {
  string app_party    = 1;
  string amount       = 2;
  string locked_amount = 3;
  uint32 lock_days    = 4;
  optional string description = 5;
  optional string reference   = 6;
  string limit        = 7;
}

See also

  • RequestRecurringPayasyougo — alternative flow with no upfront lock.
  • GetAmulets — pick amulets that satisfy locked_amount.
  • GetAgentConfig — read subscription_app_party and recurring_payment_package_name for the provider’s recurring-payment setup.