Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.smartretry.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

POST /v1/payments/recurring/charge/{terminal_friendly_id} Triggers an immediate charge against an existing recurring series. Use this endpoint when managed_by is merchant - you control when each payment fires rather than relying on a platform-managed schedule.
This endpoint only applies to series where managed_by is merchant. For our_platform-managed series, SmartRetry schedules and processes charges automatically. Calling this endpoint on a platform-managed series returns an error.
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.
curl --request POST \
  --url https://api.smartretry.com/v1/payments/recurring/charge/ABC123 \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Idempotency-Key: recurring-charge-20260401-001' \
  --data '{
    "recurring_id": "RC9F4A2B",
    "amount": 19.99,
    "currency": "USD"
  }'

Path parameters

terminal_friendly_id
string
required
Your 6-character terminal identifier.

Request body

recurring_id
string
required
The 8-character identifier of the recurring series to charge.
amount
number
Override the default series amount for this charge only, in major currency units (e.g., 19.99 for $19.99). If omitted, the amount set during initialization is used.
currency
string
Override the default series currency for this charge only. Must be a valid ISO 4217 code. If omitted, the currency set during initialization is used.
cvv
string
Card verification value for this charge. Optional, but may be required depending on your terminal configuration.

Response

transaction_id
string
Unique identifier for this transaction (8 characters).
order_id
string
Order identifier for this transaction (8 characters).
accepted
boolean
true if the charge was authorized. false if the transaction was declined. Always check this field - a 200 status does not guarantee the payment succeeded.
Example response
{
  "transaction_id": "TX8A3F2C",
  "order_id": "OR7B9E1D",
  "accepted": true
}