Skip to main content
POST
Retry Subscription
Use this endpoint to manually retry the most recent failed payment of a subscription. This is useful when a customer updates their payment method or resolves a payment issue (e.g., insufficient funds, expired card) mid-billing cycle, since subscription updates only take effect starting from the next billing cycle. Calling this endpoint forces a new charge attempt for the current cycle using the latest subscription configuration.
  • Only the most recent payment of the subscription can be retried.
  • Multiple manual retries can be executed only if the previous retry attempt resulted in a DECLINED status.
  • Manually triggering a retry stops the smart retry scheme for the corresponding payment. The following payments of the subscription will follow the smart retry scheme if enabled in the creation.
  • After the successful retry attempt, the system continues with the next scheduled subscription charge.
  • If neither condition is met, the request returns 400 with code INVALID_STATE and the message The last payment intent of the subscription does not support the action requested. The same error is returned when the subscription is canceled.
  • If no subscription matches subscription_id on the account, the request returns 400 with code SUBSCRIPTION_NOT_FOUND.

Authorizations

public-api-key
string
header
default:<Your public-api-key>
required
private-secret-key
string
header
default:<Your private-secret-key>
required

Headers

X-Account-Code
string

The account_id found in your Yuno Dashboard (UUID).

Path Parameters

subscription_id
string
required

The unique identifier of the subscription, see create subscription (UUID).

Response

200

id
string
Example:

"0054840f-bcd5-4d8e-b86c-c18ede81c556"

name
string
Example:

"Test Subscription"

account_id
string
Example:

"f7c5fe77-721b-49c2-84d3-957748df3c2c"

country
string
Example:

"CL"

description
string
Example:

"Subscription Test"

merchant_reference
string
Example:

"subscription-ref-merchant-AA01"

status
string
Example:

"ACTIVE"

amount
object
frequency
object
billing_cycles
object
customer_payer
object
payment_method
object
availability
object
retries
object
metadata
any
additional_data
any
trial_period
object
initial_payment_validation
boolean
default:true
Example:

false

created_at
string
Example:

"2025-04-29T11:13:31.786421Z"

updated_at
string
Example:

"2025-04-29T11:13:31.942325Z"

soft_descriptor
string | null
Example:

"ACME SUBSCRIPTION"

current_period_start
string | null

Start of the billing period the subscription is currently in, one cadence before current_period_end. Inside a trial or any other plan phase it follows that phase's cadence. A terminal subscription (CANCELED or COMPLETED) keeps its final window rather than going null. Null only for a subscription with no recurring cadence. Always returned together with current_period_end.

Example:

"2023-01-16T20:00:00.912480Z"

current_period_end
string | null

End of the billing period the subscription is currently in. Equal to billing_cycles.next_at. Always returned together with current_period_start.

Example:

"2023-02-16T20:00:00.786342Z"

billing_date
object | null

Only present on subscriptions billed on a fixed date instead of a frequency; mutually exclusive with frequency.

reason
string | null

Free-form reason for the subscription's current status, when one was recorded; null otherwise.

Example:

"merchant request"

renewal_notification_days
integer | null

How many days before the next billing date the subscription.close_to_renewal webhook is sent. null means no renewal notification is sent.

Example:

3

payments
string[]
subscription_agreement_id
string | null
Example:

"sa_6af2dfcd-44c0-4f16-a331-8bed3ed9c9fa"

cancellation_time
string | null

When the subscription was canceled. Only set once it reaches CANCELED; null otherwise.

Example:

"2023-12-16T20:46:54.786342Z"

cancellation_source
string | null

What triggered the cancellation: MERCHANT, SYSTEM, PLAN_CHANGE or RETRIES_EXHAUSTED. Only set once the subscription reaches CANCELED; null otherwise. Treat as open-ended — handle unrecognized values gracefully.

Example:

"MERCHANT"

ending_time
string | null

When the subscription completed or expired. Only set once it reaches COMPLETED; null otherwise.

Example:

"2024-12-16T20:46:54.786342Z"

plan_id
string

Only present when the subscription is linked to a plan.

Example:

"00000000-0000-4000-8000-000000000001"

plan_assigned_at
string

Only present on plan-linked subscriptions. The moment the plan was attached — at creation from a plan, migration onto a plan, or a plan change.

Example:

"2023-12-16T20:46:54.786342Z"

previous_subscription_id
string | null

Only present when this subscription was created by a plan change (switching an existing subscription to a different plan).

phases
object[]

The linked plan's phase definitions, as the plan declares them — including the terminal REGULAR phase. Only present on plan-linked subscriptions whose plan has phases. This is the plan's own ladder, not this subscriber's snapshot: for what was pinned for this subscription at creation, use billing_phases.

current_phase
string

Only present on plan-linked subscriptions.

Example:

"REGULAR"

current_phase_end
string | null

When the phase named by current_phase hands over to the next one — for a subscription in its trial, when it switches to the regular price. End of the last billing period the phase covers, so on the final period of a trial it equals current_period_end. Null for a subscription with no plan and for one that already left the phase ladder.

Example:

"2023-03-16T20:00:00.786342Z"

billing_phases
object[]

Only present on plan-linked subscriptions whose plan has phases. Contains the leading TRIAL phases only, snapshotted at creation — the terminal REGULAR phase is never included, since its price isn't pinned and instead resolves from the plan at every billing. current_phase: "REGULAR" is how you know the ladder is exhausted.

pending_plan_change
object | null

The plan change scheduled for the next billing cycle, or null when none is pending. Schedule one with the plan_change block on Update Subscription.

refund_rule
object

The stored refund rule used to resolve a CUSTOM cancel refund when the cancel request sends no refund_amount of its own. Present only when one is configured; omitted, not null, otherwise. Available to organizations enabled for it; contact Yuno.

pause_until
string

When the subscription is scheduled to resume automatically. Present only on a subscription currently paused with a duration (pause_cycles or pause_until sent at pause); absent, not null, on every other read.

Example:

"2026-10-15T15:54:22.780166Z"

cancel_scheduled
object | null

null when no cancellation is pending.

refund
object | null

null when refund was NONE or omitted. Present on the cancel response and on every later read once computed.

unpaid_cycle
object

Present only when the current billing cycle is PAST_DUE and has not settled.