Shipping plans: Free and Unlimited
GoRoute Shipping has two plans of its own. Free includes 10 labels a month. Unlimited has no limit on labels and costs US$7 a month. They are billed separately from the e-invoicing plans on Plan Billing: an organisation can be on any e-invoicing plan and on either shipping plan.
Postage is not part of either plan. Australia Post charges each label to your own MyPost Business account, on Free and on Unlimited alike.
How to connect that account and create shipments is in Shipping with Australia Post in the GoRoute dashboard.
Who has shippingโ
Shipping is offered to organisations in Australia and New Zealand only, and there is nothing to switch on: an organisation in either country has it unless GoRoute has switched it off for that organisation.
- Australia: labels are bought from Australia Post through your MyPost Business account.
- New Zealand: no carrier is available yet.
- Elsewhere: shipping does not exist.
Outside Australia, and in New Zealand while it has no carrier, every shipping call answers 404
with code SHIPPING_NOT_AVAILABLE. The message says which case it is: GoRoute Shipping is
available to organisations in Australia and New Zealand only., or No carrier is available for your
organisation's country yet. Where GoRoute has switched shipping off for an organisation, every
shipping call answers 403.
The two plansโ
| Free | Unlimited | |
|---|---|---|
| Labels | 10 a month | No limit |
| Price | US$0 | US$7 a month, billed in US dollars by card through Stripe |
| Checkout rates, tracking, pickups | Never limited | Never limited |
What counts as a label. Each shipment in a carrier order counts as one label. An order counts whether it is paid at once or placed on an Australia Post charge account. An order that failed does not count.
The month is the calendar month in UTC. The count starts again at 00:00 UTC on the 1st.
Labels made through the Wix app are counted and limited by that app, never here. See Wix stores below.
At the limitโ
On the Free plan, an order that would take the month's labels past 10 is refused as a whole, before anything is bought from Australia Post. With 8 labels used, an order of 3 shipments is refused, even though 2 of them would fit.
The refusal comes from POST /api/v1/shipping/orders, the call that places the carrier order. It
answers 402:
{
"code": "SHIPPING_LABEL_LIMIT",
"message": "Your Free plan includes 10 labels a month and this month's are used. Upgrade to Unlimited (US$7 a month) on the Shipping page, or the next label waits for the 1st.",
"action": "Upgrade to Unlimited on the Shipping page.",
"details": {"used": 10, "limit": 10, "requested": 1},
"retryable": false,
"request_id": "req_โฆ"
}
details.used is the labels counted this month, details.limit is 10, and details.requested is
the number of labels the refused order would have made. Nothing is bought and nothing is charged.
The message is the same whether some labels are left or none.
Upgrading in the dashboardโ
In the GoRoute dashboard, open Shipping. The plan box at the top shows where you stand:
- On Free: Free plan ยท 3 of 10 labels used this month, and an Upgrade to Unlimited ยท US$7 a month button. Once the 10 are used, it adds the next label waits for the 1st.
- On Unlimited: Unlimited plan ยท 14 labels this month, and a Manage billing button.
Upgrade to Unlimited opens Stripe's checkout page. The plan changes to Unlimited when Stripe reports the payment to GoRoute. Manage billing opens Stripe's own page for the card, the receipts and cancelling.
The plan stays Unlimited while Stripe reports the subscription as active, trialing or
past_due. In any other state the organisation is on Free.
The upgrade button appears only where upgrading is available on the service (see
checkout_available below).
The callsโ
All paths below are relative to the production base URL https://app.goroute.ai/peppol-api. The
test service serves the same paths under its own base URL. See
Environments.
| Method and path | What it does | Who may call it |
|---|---|---|
GET /api/v1/shipping/plan | The plan, the labels used this month, and what can be bought | A key with the read, write or admin scope, or a signed-in person who may read invoices |
POST /api/v1/shipping/plan/checkout-session | A Stripe checkout page for the Unlimited plan | A key with the send or admin scope, or a signed-in person who may send invoices |
POST /api/v1/shipping/plan/portal-session | Stripe's page for the card, the receipts and cancelling | A key with the send or admin scope, or a signed-in person who may send invoices |
Each call answers for the organisation the credential belongs to. A request with no credential
is refused with 401. The two POST calls take no body.
curl https://app.goroute.ai/peppol-api/api/v1/shipping/plan \
-H "X-API-Key: YOUR_API_KEY"
GET /api/v1/shipping/planโ
An example answer for a Free organisation that has used 3 labels this month:
{
"plan": "free",
"used": 3,
"limit": 10,
"left": 7,
"plan_name": "Free",
"free_labels": 10,
"unlimited_price": {"amount": 7, "currency": "USD", "interval": "month"},
"status": "none",
"billed_by": null,
"current_period_end": null,
"checkout_available": true,
"portal_available": false
}
| Field | Meaning |
|---|---|
plan | free or unlimited |
used | Labels counted this calendar month (UTC), as described under The two plans |
limit | 10 on Free; null on Unlimited |
left | Labels left this month on Free, never below 0; null on Unlimited |
plan_name | Free or Unlimited, for display |
free_labels | The Free plan's labels a month: 10 |
unlimited_price | The Unlimited plan's price: amount 7, currency USD, interval month |
status | The Stripe subscription status GoRoute last recorded for the organisation's shipping plan, such as active, past_due or canceled. none when the organisation has never had one. It can be null for an organisation whose plan comes only from the Wix app |
billed_by | stripe when a Stripe subscription keeps the organisation on Unlimited; wix when the Wix app's plan does and Stripe's does not; otherwise null |
current_period_end | The end of the subscription's current billing period, as ISO 8601, or null |
checkout_available | Whether this service can take an upgrade at all. It describes the service, not the organisation |
portal_available | Whether the organisation has a Stripe customer record for shipping, so that POST โฆ/portal-session can open its page |
POST /api/v1/shipping/plan/checkout-session and POST /api/v1/shipping/plan/portal-sessionโ
Both answer 200 with one field, url: the Stripe page to send the person to. GoRoute creates the
checkout itself and binds it to the calling organisation, so a checkout cannot be started for
another organisation.
When the person leaves the Stripe page, Stripe sends them back to the Shipping page of the GoRoute
dashboard. The host is the one in the request's Origin header when that is an https:// address,
and https://goroute.ai otherwise.
Refusalsโ
Each refusal carries code, message and, for most, action, as in the 402 example above.
| Call | Status | code | When |
|---|---|---|---|
| Any of the three | 401 | โ | No credential |
| Any of the three | 403 | โ | The credential lacks the permission in the table above, or GoRoute has switched shipping off for the organisation |
| Any of the three | 404 | SHIPPING_NOT_AVAILABLE | The organisation is outside Australia, or in New Zealand while it has no carrier |
โฆ/checkout-session | 503 | SHIPPING_BILLING_UNAVAILABLE | Upgrading is not available on this service (checkout_available is false) |
โฆ/checkout-session | 409 | ALREADY_UNLIMITED | The organisation is already on Unlimited, through Stripe or through the Wix app |
โฆ/checkout-session | 502 | SHIPPING_CHECKOUT_FAILED | Stripe could not start the checkout. Try again |
โฆ/portal-session | 404 | NO_SUBSCRIPTION | The organisation has no Stripe customer record for shipping (portal_available is false) |
โฆ/portal-session | 502 | SHIPPING_PORTAL_FAILED | Stripe could not open the page. Try again |
Wix storesโ
The Wix app GoRoute: Australia Post Shipping has the same two plans at the same price, bought and managed from inside the app (see Australia Post shipping for Wix). Two things follow:
- Labels the Wix app makes are counted and limited by the Wix app. They never count towards the 10 here.
- A Wix store on the app's Unlimited plan is on Unlimited in the GoRoute dashboard too. The plan
box reads billed in the Wix app, and
GET /api/v1/shipping/plananswersbilled_bywix. Manage that plan in the Wix app.