> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modo.link/llms.txt
> Use this file to discover all available pages before exploring further.

# RequestRecurringPrepaid

> Create a prepaid recurring payment subscription

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](/agentic-api/transaction-flow) with:

* `operation = TRANSACTION_OPERATION_REQUEST_RECURRING_PREPAID`
* `params.request_recurring_prepaid = RequestRecurringPrepaidParams { … }`

## Params

<ParamField path="app_party" type="string" required>
  Party ID of the app receiving the recurring payments.
</ParamField>

<ParamField path="amount" type="string" required>
  Payment amount per cycle.
</ParamField>

<ParamField path="locked_amount" type="string" required>
  Amount of Canton Coin locked upfront as prepayment.
</ParamField>

<ParamField path="lock_days" type="uint32" required>
  How many days the prepayment remains locked.
</ParamField>

<ParamField path="limit" type="string" required>
  Maximum total amount the app can draw over the lifetime of the agreement.
</ParamField>

<ParamField path="description" type="string (optional)">
  Human-readable description.
</ParamField>

<ParamField path="reference" type="string (optional)">
  Client-supplied reference.
</ParamField>

```proto theme={null}
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`](/agentic-api/recurring/request-recurring-payasyougo) — alternative flow with no upfront lock.
* [`GetAmulets`](/agentic-api/core/get-amulets) — pick amulets that satisfy `locked_amount`.
* [`GetAgentConfig`](/agentic-api/onboarding/get-agent-config) — read `subscription_app_party` and `recurring_payment_package_name` for the provider's recurring-payment setup.
