Skip to main content
POST /v1/payments/recurring/init/{terminal_friendly_id} Initializing a recurring agreement creates a billing series and processes the first payment. SmartRetry returns a recurring_id that identifies the series for all subsequent operations - store it alongside your subscription record.
Once a recurring series is cancelled, it cannot be reactivated. Create a new agreement if you need to resume billing.
Safe retries for this POST endpoint use the Idempotency-Key header. Reuse the same key only when retrying the exact same request body. See Idempotency.

Path parameters

string
required
Your 6-character terminal identifier. Scopes the request to your merchant account configuration.

Request body

number
required
Charge amount in major currency units (e.g., 19.99 for $19.99). Minimum 0.01, maximum 999999.99.
string
required
ISO 4217 currency code (e.g., USD, EUR, GBP).
object
required
Configuration for the recurring billing series.
object
Card details for the payment. Mutually exclusive with token.
object
Payer identity. Required unless you provide payer_fingerprint.
string
An 88-character stored payer fingerprint. Mutually exclusive with payer - provide one or the other, not both.
string
An 88-character stored payment token. Use this instead of payment_instrument when charging a saved card.
string
Card verification value. Optional, but may be required depending on your terminal configuration.

Response

string
Unique identifier for the initial transaction in this series (8 characters).
string
Order identifier associated with the initial transaction (8 characters).
string
Unique identifier for the recurring series (8 characters). Store this value - you need it for all subsequent recurring operations.
boolean
true if the initial payment was authorized and the series was created. false if the payment was declined. A 200 response with accepted: false means the request was valid but the transaction did not go through.
Example response
Store recurring_id in your database alongside your subscription record immediately after a successful response. You need it to charge, update, cancel, or query the series.