Skip to main content

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โ€‹

FreeUnlimited
Labels10 a monthNo limit
PriceUS$0US$7 a month, billed in US dollars by card through Stripe
Checkout rates, tracking, pickupsNever limitedNever 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 pathWhat it doesWho may call it
GET /api/v1/shipping/planThe plan, the labels used this month, and what can be boughtA key with the read, write or admin scope, or a signed-in person who may read invoices
POST /api/v1/shipping/plan/checkout-sessionA Stripe checkout page for the Unlimited planA key with the send or admin scope, or a signed-in person who may send invoices
POST /api/v1/shipping/plan/portal-sessionStripe's page for the card, the receipts and cancellingA 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
}
FieldMeaning
planfree or unlimited
usedLabels counted this calendar month (UTC), as described under The two plans
limit10 on Free; null on Unlimited
leftLabels left this month on Free, never below 0; null on Unlimited
plan_nameFree or Unlimited, for display
free_labelsThe Free plan's labels a month: 10
unlimited_priceThe Unlimited plan's price: amount 7, currency USD, interval month
statusThe 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_bystripe 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_endThe end of the subscription's current billing period, as ISO 8601, or null
checkout_availableWhether this service can take an upgrade at all. It describes the service, not the organisation
portal_availableWhether 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.

CallStatuscodeWhen
Any of the three401โ€”No credential
Any of the three403โ€”The credential lacks the permission in the table above, or GoRoute has switched shipping off for the organisation
Any of the three404SHIPPING_NOT_AVAILABLEThe organisation is outside Australia, or in New Zealand while it has no carrier
โ€ฆ/checkout-session503SHIPPING_BILLING_UNAVAILABLEUpgrading is not available on this service (checkout_available is false)
โ€ฆ/checkout-session409ALREADY_UNLIMITEDThe organisation is already on Unlimited, through Stripe or through the Wix app
โ€ฆ/checkout-session502SHIPPING_CHECKOUT_FAILEDStripe could not start the checkout. Try again
โ€ฆ/portal-session404NO_SUBSCRIPTIONThe organisation has no Stripe customer record for shipping (portal_available is false)
โ€ฆ/portal-session502SHIPPING_PORTAL_FAILEDStripe 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/plan answers billed_by wix. Manage that plan in the Wix app.