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

# Trigger Recurring Payment

> Trigger a recurring payment for a ADHOC subscription.

Trigger a charge on an active **ADHOC** subscription. The API call initiates the payment — the actual payment outcome (success, failure, or cancellation) is delivered asynchronously via webhooks, at which point the order and payment records are created in the system.

<Info>
  This endpoint only supports **ADHOC** subscriptions. The subscription must have an active mandate before a recurring payment can be triggered.
</Info>

### Path Parameters

<ParamField path="subscription_id" type="string" required>
  The unique identifier (uid) of the subscription.
</ParamField>

### Request Body

<ParamField body="amount" type="number">
  Amount to charge for this recurring execution. If not provided, the subscription's `billing_amount` is used. Must be less than or equal to the subscription's `billing_amount`.
</ParamField>

### Response Fields

<ResponseField name="subscription_id" type="string">
  The subscription identifier.
</ResponseField>

<ResponseField name="payment_id" type="string">
  Auto-generated with `REC-` prefix if not provided.
</ResponseField>

<ResponseField name="payment_amount" type="number">
  The amount charged for this recurring payment.
</ResponseField>

<ResponseField name="status" type="string">
  Status of the API call. `success` means the payment was initiated — not that it has been captured.
</ResponseField>

<ResponseExample>
  ```json 200 - Payment initiated theme={null}
  {
    "success": true,
    "message": "Recurring payment triggered successfully",
    "data": {
      "subscription_id": "sub_abc123",
      "payment_id": "REC-sub_abc123-a1b2c3d4",
      "cf_payment_id": "cf_pay_789",
      "payment_amount": 500.00,
      "status": "success",
      "message": "ADHOC recurring payment initiated successfully"
    }
  }
  ```

  ```json 400 - Amount exceeds billing amount theme={null}
  {
    "success": false,
    "error": {
      "code": "PAYMENT_GATEWAY_VALIDATION_ERROR",
      "message": "Validation error",
      "details": {
        "amount": [
          "Recurring amount must be less than or equal to the subscription billing amount"
        ]
      }
    }
  }
  ```

  ```json 503 - API error theme={null}
  {
    "success": false,
    "error": {
      "code": "PAYMENT_GATEWAY_API_ERROR",
      "message": "Payment gateway API error",
      "details": {
        "message": "Failed to trigger recurring payment"
      }
    }
  }
  ```
</ResponseExample>
