Update an active subscription
Two things change over the life of a subscription: the card on file and the items being delivered.
Both go through update_payment_token, and both
can require the customer to take an action before the token is chargeable again.
Calling this endpoint when items change is not optional. Eligibility is scoped to the items covered by the customer’s LMN, so an uncovered change will block the next charge instead.
update_card_info: true cannot be combined with order_items or with renew_eligibility: true.
Either combination is rejected with a 400—when 'update_card_info' is True, 'order_items' must not be provided or when 'update_card_info' is True, 'renew_eligibility' must be False. Make two
separate calls.
Update the card on file
Call update_payment_token with update_card_info: true. The response comes back with
next_action: "UpdatePaymentMethod" and a redirect_url where the customer can enter new card
details.
In a subscription dashboard, put this behind a button like “Update payment method” that calls the endpoint from your backend and redirects the customer to the returned URL.
Change the subscribed items
Send the new order_items. Whether the customer has to requalify depends on how far the change moves
them from what their LMN covers, and that determination can change over time—so always call the
endpoint and read the response rather than guessing.
Read next_action to decide what to do:
next_action is the string "None", not JSON null. Only treat a change as confirmed when it comes
back as "None".
For example: a customer subscribed to monthly B12 who adds magnesium may need a new LMN covering both
items. Confirming the change in your system without checking next_action leaves you with a
subscription that fails at the next billing period.
Renew eligibility before the LMN expires
An LMN that is still valid covers the subscription, so a plain update_payment_token call for
unchanged items comes back next_action: "None" with redirect_url: null—there is no link to send.
To get a survey link ahead of the expiry, send renew_eligibility: true. It treats an LMN expiring
within the next 30 days as needing requalification, and returns TakeHealthSurvey with a
redirect_url you can email the customer.
Two constraints:
order_itemsis required and must be non-empty. Send the subscription’s current items—the survey is scoped to them. Omitting them is rejected with a400—when 'renew_eligibility' is True, 'order_items' must be provided.- It cannot be combined with
update_card_info: true. If a customer needs both a new card and a renewed LMN, make two calls.
Outside the 30-day window, renew_eligibility: true changes nothing: a comfortably valid LMN still
returns "None".
Show subscription status to customers
If you’re building a customer-facing subscription dashboard, fetch the current token state with
retrieve_payment_token:
This response does not include the card brand, the next billing date, or the next billing amount. Truemed doesn’t own your billing schedule—those come from your own subscription records.
Warn customers before their card or LMN expires, escalating as the date approaches: a dismissible banner at 30 days, a more prominent notice at 14, a required acknowledgment at 7. Pair the update button with a way to view billing history and cancel.