# Plans and Sandbox

The Sandbox period per shop, the daily budget, connections, the monthly transfer allowance and the shop limit of a punchout.dev plan, and how Stripe billing works.

URL: https://punchout.dev/docs/account/plans-and-sandbox/

This page explains what a punchout.dev plan limits, what happens at each limit, and how billing through Stripe works. Prices and the figures per plan are in the [pricing section](https://punchout.dev/#pricing).

## What a plan sets

There are three plans: **Sandbox** (free), **Standard** and **Pro**. A plan belongs to an organisation and applies to all its shops.

| Mechanism | What it counts | At the limit |
| --- | --- | --- |
| Productive punchouts | Launches from real buyer systems | Sandbox: refused. Paid plans: allowed |
| Daily budget | Cart readings and cart detection per shop and UTC day | Cart reading and detection can fail until the next UTC day |
| Connections | Enabled buyer credentials, across all shops | Creating or enabling one more is refused |
| Transfers per month | Carts transferred to buyer systems, per organisation and calendar month | Nothing is refused. Owners get an email at 80% and at 100% |
| Shops | Shops per organisation | Creating or claiming one more shop is refused |

**Settings** → **Organisation** shows your plan, the daily budget per shop and how many shops you have. **Settings** → **Billing** shows connections and this month's transfers.

## The Sandbox

Every new organisation starts on the Sandbox, and an organisation returns to it when its subscription ends.

Each shop has its own Sandbox period. It starts when the shop is created in the portal or claimed from an instant tag. The dashboard shows the days left, the shop list shows "Sandbox until" with the date, and **Settings** → **Billing** lists the date per shop.

During the period:

- Setup links, cart detection and [test punchouts](https://punchout.dev/docs/getting-started/test-punchout/) work, within the daily budget.
- One buyer credential can be enabled, so you can prepare a go-live.
- A launch from a real buyer system is refused before the shop opens, and the buyer sees a short notice instead of the shop. [Getting started](https://punchout.dev/docs/getting-started/) lists what each protocol shows. The owners get an email when buyers are being turned away.

Owners get an email 7 days before a shop's period ends. Once it has ended, punchout.dev reads no carts for the shop until a plan is booked: cart detection shows "Detection failed.", and a test punchout does not start ("This shop's sandbox has ended."). A paid plan lifts this at once. If the organisation later falls back to the Sandbox, the old end date applies again. The period does not restart.

A provisional shop from the instant tag on the landing page belongs to no organisation yet. It has a small daily budget of its own and is deleted after 7 days unless it is claimed. Its Sandbox period starts with the claim.

## Daily budget

The daily budget limits how often punchout.dev reads carts for a shop each day. Reading a cart during a punchout, test punchouts included, and automatic cart detection both use it.

The plan sets the budget per shop, and it resets at 00:00 UTC.

When the budget is spent, cart reading for the shop can fail until the next UTC day. The buyer's panel shows "Analysis failed." with **Retry**, and retrying does not help before then. Cart detection shows "Detection failed." for the same reason. A plan upgrade takes effect at once.

The **Usage** tab shows the **Daily budget** with today's use, and the dashboard shows today's budget for the shop closest to its limit.

## Connections

One enabled buyer credential is one connection, counted across all shops of the organisation. A plan includes a number of connections, and on a paid plan owners can book additional ones.

- Creating a credential and enabling a disabled one are checked against the limit.
- Disabling, rotating, editing and deleting never are.
- A plan switch or fewer booked connections is refused while more credentials are enabled than the new number allows. Disable credentials first.
- When a subscription ends, nothing is switched off. The organisation shows as over its limit, and no further credential can be enabled until it is under.
- The temporary entry of a test punchout never counts.

## Transfers

The monthly transfer allowance is a soft cap. It counts the carts that all shops of the organisation transferred to buyer systems in the current calendar month (UTC), test punchouts excluded. A buyer's transfer is never refused. Every owner gets an email at 80% and at 100% of the allowance, each once per month. Some plans have no transfer limit.

**Settings** → **Billing** → **Usage this month** shows **Carts transferred**, and the dashboard shows **Transfers**.

## Shops

A plan allows a number of shops per organisation. Past that number, both **New shop** and claiming an instant tag answer "Your plan does not allow another shop."

## Billing

Billing runs through Stripe. Every member can see **Settings** → **Billing**, but only owners can buy or change anything. Payment data stays with Stripe.

| What | How |
| --- | --- |
| Choose a paid plan | **Upgrade** opens Stripe Checkout. Pay monthly or yearly where the plan offers both |
| Prices and tax | Prices are net. Stripe Tax computes the tax on top, including reverse charge where it applies. Checkout requires a billing address and, where Stripe supports one for your country, a tax ID such as a VAT ID |
| Plan becomes active | When Stripe confirms the payment, usually within seconds |
| Switch plan | **Switch** on the Billing page. Takes effect at once; Stripe prorates the running period |
| Additional connections | **One connection more** or **One connection fewer**, then **Apply**. Prorated |
| Go-live service | A one-off booking on a paid plan |
| Invoices, payment method, address, cancel | **Manage billing** opens Stripe's billing portal |

Canceling in the billing portal ends the subscription at the end of the period. The organisation then returns to the Sandbox: productive launches are refused again, and shops whose Sandbox period has passed read no carts until a plan is booked again.

If a payment fails, the plan stays while Stripe retries. If the subscription becomes unpaid, the organisation is held to Sandbox limits until it is paid.

A plan switch or a connection change needs a billing address that Stripe can use for tax. Without one, the portal says that Stripe cannot determine your billing address. Complete the address in **Manage billing** and try again. If Stripe cannot verify your tax ID, invoices continue and the portal shows a notice. The tax ID cannot be changed in the billing portal, so reply to the email or contact support.

punchout.dev passes the **Billing email** from **Settings** → **Organisation** to Stripe at the first checkout, when your organisation's Stripe customer is created. Without it, Stripe gets the address of the owner who checks out. After that, change it in **Manage billing**. Plan notices (transfers, Sandbox end, refused launches, tax ID) go to every owner of the organisation.

The binding terms are on the [terms page](https://punchout.dev/legal/terms/).
