Recharge one-time order additions: how add-ons work and how to support them

Kira
Written by

Kira

Katelin Teen
Reviewed by

Katelin Teen

Last edited November 6, 2026

Expert Verified
Hand-drawn pair of people placing products into a subscription box, with a dashed plus card for an extra item, on a purple Recharge-style shape
TL;DR

In Recharge, a one-time product is an add-on that rides on the next order only. It does not repeat, and skipping or cancelling the subscription does not remove it: a skip rolls the add-on to the following order, and a cancel leaves it until someone deletes it. Your team (or the customer, if you allow it) adds it from the merchant or customer portal, and the API's onetimes resource does the same. Most add-on tickets are really date and status questions.

An AI agent like eesel can answer "when does my add-on ship?" from the live subscription, but it has no add-product action in Recharge, so the add itself goes to a person. With the eesel CLI, a coding agent can upload approved knowledge such as your add-on rules and macros, then ask test questions and check the answers before anything goes live.

Why do add-on tickets go wrong so often?

Because "add one more thing to my next box" sounds like one action and is really three: pick a product, pick an order, and decide what happens if that order changes. The customer only thinks about the first.

I work on the team that wrote eesel's Recharge actions, and the thing I keep seeing in the docs and in tickets is how much weight sits on the word "next." A one-time product doesn't belong to the subscription. It belongs to whichever upcoming order it was attached to. Recharge's own guide says it plainly: a one-time purchase is added only to the next scheduled order and isn't included in future recurring orders unless the customer adds it again.

So the tickets arrive in a handful of shapes, by email, chat or Instagram DM: "can you add the shaker bottle to my next order?", "where is the add-on I bought?", "I skipped, why was I charged for the extra item?", and "please remove it". If you've read our posts on skip tickets and pause dates, this is the third in the set, and the one where the order, not the subscription, is the thing to look at.

What is a one-time product in Recharge?

It is a single purchase added to an existing subscription order, billed once, shipped once, and then gone. Recharge describes the difference as purchase frequency: a subscription product repeats, a one-time product doesn't.

Recharge help center article "Adding or removing one-time products on an upcoming order", showing the Before you start list and the one-time product definition, as taken from Recharge
Recharge help center article "Adding or removing one-time products on an upcoming order", showing the Before you start list and the one-time product definition, as taken from Recharge

Three details from that guide decide most edge cases:

  • Merchants set the menu. With Product Subscription Plans, you offer specific one-time products, and the Available as a one-time product setting must be on for a product to appear in the merchant portal's add flow.
  • Bundles are portal-only. You can offer bundles as one-time products through the Affinity portal, but you can't add a bundle as a one-time product to an upcoming order from the merchant portal.
  • Shopify shows subscription wording. When an add-on is attached to a subscription order, Shopify displays the subscription and delivery verbiage on it, and a View subscription link appears in the Shopify admin. Recharge says this is expected and the order processes the add-on as a one-time purchase, so the customer is charged once. It is the number one cause of "why does my add-on say subscription?" tickets.

If a customer wants the item every cycle, that isn't an add-on. It is a subscription swap or addition, and Recharge's swap guide says that to change from a subscription to a one-time product you cancel the subscription and add the one-time product. Our subscription business roundup covers the wider picture.

How does an add-on get onto an order?

Three ways, and they don't all behave alike.

Hand-drawn diagram with a one-time add-on card on the left and three arrows to cards reading customer portal add product, merchant portal add product, and API POST onetimes
Hand-drawn diagram with a one-time add-on card on the left and three arrows to cards reading customer portal add product, merchant portal add product, and API POST onetimes
RouteWho does itStepsWhat to watch
Customer portalThe customerAdd Product flow, pick One time only, confirmNeeds the add-products portal setting on and the product visible
Merchant portalYour teamCustomers, find the customer, Add product, set Plan to One-time purchase, update price and charge date, saveBundles can't be added here
APIYour integrationPOST /onetimes with an address, variant, quantity and a date or add_to_next_chargeNeeds a write_subscriptions scope

On the customer side, Recharge's Affinity instructions say to open the View your next order tab, choose Browse all products (or +Add from the quick view), click +Add on the product, select One time only and click Add to order. If a customer says they can't find it, ask which tab they're on before anything else.

If you go through the merchant portal, remember that your team sets the price and the charge date at add time. That is the useful part for support: you can add a free sample, a replacement bottle at a discount, or a goodwill item at a price you choose, which a customer can't do for themselves.

Which portal settings allow or block adding products?

Two places control it, and they're easy to confuse: the product's plan, and the customer portal's add settings.

Recharge's portal settings guide puts the toggle under Cross-sells, adds, & swaps. Select Allow customers to add extra products to their next order, then choose which products appear as recommendations: Smart select products, products from a Recharge collection, or all products with a Recharge plan. There is also a sort order and an option to include other variants of products the customer already subscribes to. Recharge adds that strategies that need added products, such as Win Backs, override the setting.

The older one-time guide describes the same control as Customers can add more products and lists four selections for which products show up: all products, Recharge products, a Recharge collection, or smart select. The labels differ between the two articles, so check which wording your portal uses.

Two rules from the one-time guide are the ones I'd put in a macro:

  1. Subscription-only products appear in search without a one-time option. A product set to a subscription-only rule shows in the "Add Product" search, but doesn't show the option to add it as a one-time purchase.
  2. Dynamic pricing can force add-on only. The swap guide says products that use only dynamic-pricing plans can't be added as subscription items through the merchant portal and can only be added as one-time purchases to existing subscriptions. That's why an Add product button can look grayed out for a subscription add.

For stores that want the add flow to carry more weight, our guides on AI upselling and product bundling explain what to measure before you widen the product list.

Which charge and address does an add-on ship with?

The one it was attached to. In the API's own words, onetimes represent non-recurring line items on a queued charge, so the add-on is part of one specific upcoming order for one specific address.

That has three consequences for support:

  • Check the address first. The merchant-portal add flow adds to the customer's existing subscription address. A customer with two addresses can end up with the add-on on the wrong one. Address edits live on address records, so a shipping fix is a separate step (our address macro guide shows the Shopify side).
  • No upcoming order means a custom date. Recharge says that if a customer has no upcoming recurring orders, you can add a one-time product to an unused address and set a custom charge date. That is the answer for "I'm paused, can I still buy one bottle?"
  • The date is the date of the order. In the API, next_charge_scheduled_at is the date the purchase executes, and it can't be combined with add_to_next_charge, which tells Recharge to attach the add-on to the next charge under that address.

One honest caveat: Recharge's help article doesn't describe what happens to an add-on when you move the whole charge to a new date. My read, from the API definition, is that the add-on travels with the charge, but I'd check the charge in the portal before promising the customer a date. That is the same rule I gave for pause tickets: read the record, then answer.

What happens to an add-on when the order is skipped, moved or cancelled?

The add-on stays, and that surprises customers. A subscription is flexible; an add-on is attached to an order.

Hand-drawn branching diagram from a card reading add-on on next order to three outcomes: order processes and ships once, order skipped and add-on moves to next order, subscription cancelled and add-on stays until removed
Hand-drawn branching diagram from a card reading add-on on next order to three outcomes: order processes and ships once, order skipped and add-on moves to next order, subscription cancelled and add-on stays until removed
EventWhat happens to the add-onSource
Order processesIt ships once and is goneOne-time guide
Customer skips the orderSubscription items skip; the add-on is rescheduled to the following orderAffinity instructions
Customer skips or cancels before processingSubscription items update; the add-on remains unless manually removedOne-time guide
Subscription is cancelledA manually added add-on isn't removed automatically; you or the customer must delete itCancel guide
Free gift on the chargeIt stays on the charge while the charge still has another purchase itemCancel guide

The skip row deserves care. The Affinity page says a skipped order skips "all subscriptions within the order" and that one-time products "cannot be skipped and will get rescheduled to the following order." So the customer who skips a box in March and receives only a shaker bottle in March is not seeing an error. The tidy reply is to say the date the add-on now ships and offer to delete it if they don't want it.

For prepaid plans, take extra care. eesel's Recharge docs describe a prepaid plan as one charge covering several shipments, and Recharge's swap guide says prepaid customers must contact you to change a product. I didn't find a separate one-time rule for prepaid in the guides I read, so check the queued orders before you promise anything there. The same goes for the cut-off window if you use one.

And the cancel case is the one that costs money. A customer cancels, forgets the add-on, and the charge goes through for a lone product. That is a billing question before it is a subscription question, and it belongs in the same flow as cancellation and retention.

How do you remove or refund an add-on?

Remove it before the order processes; refund it if it already did. Recharge's guide has two removal paths, both before the charge runs, and the API has a third:

  1. Merchant portal: Customers, find the customer, hover over the one-time product, click the three-dot menu, select Delete, then click Confirm: delete order.
  2. Customer portal: the customer deletes the one-time product directly.
  3. API: DELETE /onetimes/{id} returns 204 with no body.

The guide doesn't describe refunds, so I wouldn't invent a Recharge refund step. Once the order has been charged, an add-on is an ordinary line on an ordinary order, and the refund follows whatever your team already does. I'd keep the approval step: money moves rarely belong in an agent's judgment, which is why we wrote up a refund approval matrix and a guide to automating refunds with limits.

What does the Recharge API's onetimes resource do?

It is the same add-on, as data. In Recharge's 2021-11 API, onetimes has five endpoints: create, retrieve, update, delete and list.

Code
curl 'https://api.rechargeapps.com/onetimes' \
 -H 'X-Recharge-Version: 2021-11' \
 -H 'X-Recharge-Access-Token: your_api_token' \
 -H 'Content-Type: application/json' \
 -d '{
  "address_id": 45154492,
  "next_charge_scheduled_at": "2021-12-17",
  "quantity": 1,
  "external_variant_id": { "ecommerce": "3844892483" }
}'

That example is trimmed from Recharge's reference, which also shows price, product_title and properties. The fields I'd care about as a support lead:

  • next_charge_scheduled_at: the date the add-on executes.
  • is_cancelled: a flag for a cancelled add-on, so a lookup can tell a removed one from a live one.
  • properties: key-value pairs for details such as colour or grind, which is where a "wrong variant" ticket is often solved.
  • sku_override: when true, the add-on's own SKU is used to generate charges and orders.

Reads need read_subscriptions, and writes need write_subscriptions. The list endpoint can filter by address_id, which is the call that answers "what add-ons are on this address?" If you are weighing who writes to it, our post on human handoff is worth a read first.

Which add-on answer fits this ticket?

When a ticket mentions an add-on, this is the order I'd check things in. Click a type and read what to do and what to tell the customer.

Add-on ticket checker

What did the customer ask for?

Do: add it as a One-time purchase in the merchant portal, with the price and charge date you want. If there's no upcoming order, add it to an unused address with a custom date.

Check: is the product set as available one-time? Is it a bundle? Which address is it on?

Tell them: the order date it ships with, and that it won't repeat next month.

Do: open the customer's upcoming order and find the add-on line. Read the date, not the request.

Check: was the order skipped, so the add-on rolled to the following order?

Tell them: the exact date it ships and what it shipped with.

Do: explain that add-ons can't be skipped and move to the following order. Offer to delete it.

Check: is the add-on now on a later order than the customer expects?

Tell them: the new date, and that the subscription items did skip.

Do: delete the one-time product from the upcoming order, before it processes.

Check: has the charge already run? If so, this is a refund, not a delete.

Tell them: that it's removed, and that nothing else on the order changed.

Do: look for a lone add-on left on the next charge. A cancelled subscription doesn't remove a manually added one.

Check: delete it if the order hasn't processed. If it has, route a refund through your approval flow.

Tell them: what happened in plain words and what you did about it.

How do helpdesks and AI agents handle add-on tickets?

Most teams work add-ons from the helpdesk with Recharge open in a second tab. The cost is the lookup: someone has to find the subscriber, open the right upcoming order, and read the add-on line.

Gorgias has a Recharge sidebar and AI Agent actions for subscriptions, and our Gorgias and Recharge post covers them. I haven't verified whether any of those actions adds a one-time product, so check the current Gorgias docs before planning around it.

eesel is narrower on purpose, and here is the exact finding for add-ons. From its Recharge docs, eesel looks the subscriber up by the email they wrote from, lists subscriptions with status and next charge date, and lists orders with each order's status and scheduled date. It can skip one charge on a month-to-month plan, change quantity or frequency, cancel, reactivate, create a subscription, and cancel a queued order of a prepaid plan. It has no action that adds a one-time product, and none that removes one, so for an add-on request it answers what it can read and hands the add to your team.

eesel help center page for the Recharge integration, listing look-up and subscription actions and the FAQ on pausing and date changes
eesel help center page for the Recharge integration, listing look-up and subscription actions and the FAQ on pausing and date changes
Hand-drawn two-column split: AI can read next charge date, queued orders and order status; a person does add the item, remove or move it, and refund
Hand-drawn two-column split: AI can read next charge date, queued orders and order status; a person does add the item, remove or move it, and refund

None of the customers below run Recharge, so I'm not claiming a Recharge result. They show the same pattern of reading the order before answering. STIL Classics runs eesel on Gorgias and Shopify, and in one month eesel prepared about 320 tickets for the team and looked up about 230 Shopify orders first, with a person checking each draft and doing any refund. Poseidon Animal Health, a supplement brand on Gorgias, names pausing an auto-ship as a typical customer question and has its team check auto-ship changes before anything is sent. The record comes first, then the reply.

What I'd look for before letting any agent near add-ons:

  • It reads the next charge date and queued orders first. An answer without a date is a future ticket.
  • It doesn't pretend to have actions it lacks. "I can't add that, a teammate will" beats a made-up confirmation.
  • It tags add-on tickets. A consistent ticket tag shows later which products drive add-ons.
  • It's tested on real tickets. Run it on past add-on tickets with simulation testing before go-live.
  • Money goes to a person. Charges that already ran follow your handoff rules.

How should you reply to an add-on request?

Reply with the date, what the add-on is attached to, and the one thing that could change it.

For a request to add an item:

Hi Sam, I've added the shaker bottle to your next order, which ships on March 14. It's a one-time item, so it won't repeat on later orders. If you'd like it every month instead, tell me and I'll set that up as a subscription.

For "I skipped, why did I get the add-on?":

Hi Sam, your subscription items skipped as requested. One-time add-ons can't be skipped, so the shaker bottle moved to your next shipment on April 14. If you'd rather not receive it, reply and I'll remove it before it ships.

For "I cancelled but I was charged for an add-on":

Hi Sam, I'm sorry about that. Cancelling a subscription doesn't remove an item that was added to the order separately, and one was still on your last charge. I've refunded it in full and you'll see it in 3 to 5 business days.

Notice what all three do: they name a date and say what happened in order. Stored as macros, they're easy to reuse, and if you're training an AI on past tickets, these are the replies worth copying. Our refund and shipping macros show the surrounding set.

Some things that make add-ons easier at the source:

  • Turn on the add-products portal setting so simple requests don't reach you.
  • Keep the product list short. Recommendations in the portal come from your settings, and a short list cuts "can't find it" tickets.
  • Use the upcoming order email as the moment to offer add-ons, as part of proactive support.
  • Flag delays honestly. An add-on stuck on a late order is a shipping delay question, not an add-on question.
  • Know your order system. Our order management guide covers what sits behind these records.

Does the Recharge plan change what you can do?

I found no plan restriction in the one-time or portal guides, so these features aren't described as gated. Here is Recharge's current pricing:

Recharge pricing page showing Starter at $149 a month, Scale at $499 a month and Custom with volume-based rates, as taken from Recharge
Recharge pricing page showing Starter at $149 a month, Scale at $499 a month and Custom with volume-based rates, as taken from Recharge
PlanMonthly feeProcessing fees
Starter$149/mo1.50% + 20¢ per transaction
Scale$499/mo1.25% + 20¢ per transaction, with scalable rates
CustomVolume-based ratesCustom

An add-on is a transaction like any other, so the per-transaction fee applies to the order it ships with. Check the pricing page for what each plan includes before you decide.

Try eesel for Recharge add-on tickets

If "when does my add-on ship?" fills your queue, eesel can answer it from the live subscription inside the helpdesk you already use. It is built for Shopify support: it reads the subscriber's next charge date and queued orders in Recharge, replies with the real date, and hands the add action, any removal and anything with money attached to your team.

Connect Recharge and Shopify, point the agent at a real subscriber, and ask it for their next order before it touches a live ticket. If you already run Zendesk, it works from there too, and our Shopify support roundup and ecommerce support guide are the next stops. Try eesel free.

Frequently Asked Questions

How do I add a one-time product to a Recharge subscription order?
In the merchant portal, open the customer, click Add product, pick the product, choose One-time purchase in the Plan drop-down, adjust the price and charge date if needed, and save. Recharge's one-time product guide lists the same steps. Customers can do it themselves from the portal if you allow it. Our skip order guide covers the neighbouring request.
Does a Recharge one-time product repeat on future orders?
No. Recharge says a one-time purchase is added only to the customer's next scheduled order and is not included in future recurring orders unless the customer adds it again. If the customer wants it every cycle, that is a subscription product, which is a different request. Our subscription box support guide covers how to explain the difference.
What happens to a one-time add-on if the customer skips the order?
The subscription items skip, but the add-on does not. Recharge's Affinity portal instructions say one-time products cannot be skipped and get rescheduled to the following order. Tell the customer the date the add-on will now ship with, and offer to remove it. For a longer delay, see how a pause date works.
Why can't customers add products in the Recharge customer portal?
Usually a setting. The add-products option under Cross-sells, adds and swaps has to be on, the product has to be visible under your product selection, and a product set to a subscription-only rule shows up in search without a one-time option. Recharge's portal settings guide has each toggle. A self-service setup only helps if these are switched on.
Can I add a one-time product through the Recharge API?
Yes. The onetimes resource in Recharge's 2021-11 API creates, retrieves, updates, deletes and lists add-ons. A create call needs an address, a variant, a quantity and either a charge date or the add_to_next_charge flag. Treat an automated write like any other action and put it behind a approval workflow.
Can AI add a one-time product to a Recharge order?
Not with eesel's current Recharge actions. eesel's Recharge integration looks up the subscriber, subscriptions and queued orders, and it can skip a charge, change quantity or frequency, cancel and reactivate. It has no add-product action, so for an add-on it answers what it can read and hands the add to your team. A wider helpdesk AI agent can sit in front of that handoff.
How do I remove or refund a Recharge add-on?
Before the order processes, delete it: in the merchant portal hover the one-time product, open the three-dot menu, choose Delete and confirm. The customer can also delete it in their portal. Recharge's guide doesn't describe refunds, so once it has been charged, treat it as an ordinary refund inside your refund approval matrix.

Share this article