Skip to main content

Deliver with a Stuart courier

Connect your Stuart account to XPRIO and have your orders delivered by a courier when you have no driver, or to absorb the rush. Available in France, the United Kingdom and Poland, in major cities.

Written by XPRIO

Stuart gives you access to its independent couriers without going through an ordering marketplace: the customer orders in your own app, under your name, and Stuart only provides the driver. You pay each trip at the Stuart rate, with no commission on your sales.

In XPRIO this is called a partner courier. You connect it once for your business, then decide, store by store, whether it delivers all your orders or only backs up your own drivers.

What to know before you start

  • The Stuart account is yours. You create it with Stuart, and Stuart bills you for each trip. XPRIO takes nothing.

  • The customer pays your delivery fee, the one set on your store, collected with the order. The cost of the Stuart trip is billed separately, depending on the distance, the package size and the time of day. If your fee is lower than the trip, you cover the difference; if it is higher, you keep it. Once connected, XPRIO shows you the price of a typical trip, tax included.

  • Online payment is mandatory. A partner courier collects nothing. The partner courier modes only become available once card payment online (Stripe) is set up in your app. Setting up your payment methods

  • Countries covered: France, the United Kingdom and Poland, in the major cities where Stuart operates (129 cities in 2025). XPRIO only offers Stuart for stores in these countries and checks every address at checkout.

  • A bank card must be registered with Stuart before the first trip, including on the test account. Without a card, Stuart refuses to create the delivery.

  • No handover code with Stuart: the proof of delivery is Stuart's own (signature or photo).

  • A cancellation may be charged once a courier has been assigned. XPRIO warns you before you confirm.

Step 1: open your Stuart accounts

Stuart provides two dashboards, each with its own sign-up:

  • Test account at dashboard.sandbox.stuart.com: simulated trips, nothing billed, available immediately. This is where you will do your trials.

  • Live account at dashboard.stuart.com: request it on stuart.com (Become a client button or equivalent). Stuart calls you back to validate your business, then opens your access.

In both cases, once signed in:

  1. Click your avatar at the top right, then My account.

  2. In the left menu, click Billing and register a bank card. On the test account, any test card works (except American Express), for example 4242 4242 4242 4242 with a future expiry date and a three-digit code. On the live account, your real card or your billing details depending on your contract.

Step 2: get your keys

  1. Under My account, left menu, click API.

  2. If the page shows No API credentials, click Generate now.

  3. The API credentials section shows three rows, each with a copy icon:

    • Client ID: a long string of characters.

    • API secret key: another long string (this is the "Client secret"). Never share it.

    • Stuart account ID: a six-digit number. You will not need it in XPRIO.

The values shown on screen are truncated: always use the copy icon, never a mouse selection. The test account and the live account each have their own keys.

Step 3: connect Stuart to XPRIO

  1. In XPRIO, left menu, open App Configuration then Partner couriers.

  2. On the Stuart card, click Connect.

  3. Under Environment, choose Test for the test account keys, Production for the live account keys.

  4. Paste the Client ID into Client ID and the API secret key into Client secret. The eye icon lets you reveal the secret to check.

  5. Leave Webhook authentication key empty for now (step 4).

  6. Click Save and test. XPRIO connects to Stuart, checks that your store's address is served and requests a blank quote. If the card turns to Connected (test) or Connected (production), you are done. Otherwise a red message carries Stuart's answer: incomplete keys, or a store outside Stuart's zones.

Once connected, the card shows "Typical trip from your store (about 1.5 km)" with the real price, tax included, returned by Stuart.

Step 4: enable real-time notifications (recommended)

Without this step, XPRIO refreshes the status of each trip every 20 seconds: it works. With it, Stuart notifies XPRIO instantly on every change (courier assigned, position, order picked up, delivered).

  1. In XPRIO, reopen the Stuart window (Edit on the card). Copy the Notification URL to declare with the provider.

  2. Still in this window, make up a long key (for example 20 characters without spaces), paste it into Webhook authentication key, then Save and test.

  3. In the Stuart dashboard, My account, API: below the credentials section, the Webhooks section reads No Webhooks. Click + Add a new endpoint.

  4. Paste the URL into Webhook URL. In Authentication header, type exactly Authentication-Key (without this name, Stuart does not send the key and XPRIO rejects the events). In Authentication key, paste the same key as in XPRIO. Tick all V2 events (job, delivery, driver). Save.

The Stuart card in XPRIO shows "Real-time notifications active" from the first trip.

Step 5: choose the mode for each store

  1. In XPRIO, Stores menu, open the store (Edit), then the Delivery and Services tab.

  2. Check that the Delivery service is enabled.

  3. In the Who delivers your orders section, choose:

    • My drivers: nothing changes.

    • My drivers + partner courier as backup: your drivers stay first; a Call a partner courier button appears on every delivery order paid online as long as no driver is assigned. Option Automatically call a partner courier if no driver takes the order, with a delay of 5 to 30 minutes after "ready".

    • Partner courier only: every delivery order is automatically handed to the Stuart courier, at the moment you choose (When to request the courier). The customer only sees online payment.

    If the partner cards are greyed out with "Online payment required", first enable Stripe under App Configuration, Payment Methods.

  4. Choose Stuart under Provider.

  5. In "partner courier only" mode, choose the delivery fee charged to the customer: My fixed fees or The courier price (+ margin). In backup mode the customer always pays your fixed fees.

  6. If needed, add pickup instructions for the courier and decide whether the customer's tip is passed on to the courier. Save.

In Live and on the customer side

On the order, the Partner courier block shows the Stuart courier from the assignment, phone number, stage (Courier on the way, Courier at the store, Picked up, At the customer, Delivered) and estimated arrival time. Before requesting, the confirmation window shows you the delivery cost, tax included.

The order moves to Out for delivery when the courier picks it up and to Delivered on handover, without any action. You can cancel the courier as long as the order has not been picked up. If Stuart cancels or the order is returned, you receive a notification, a sound and a message in Live, and you can request a new courier or assign one of your drivers.

In your app, the customer sees a Partner courier contact card with the courier's first name, a call button, a tracking link, and the live position on the map. On a store in "partner courier only" mode, the cart only shows card payment.

Frequently asked questions

Can I test without a real trip? Yes, with the test account connected in the Test environment. In the test dashboard, the Ideal scenario tab lets you move a simulated trip forward step by step and watch the result in Live.

Stuart refuses the trip with a payment error? No card is registered under Billing for this account, or it has expired. Add one and try again.

Related articles

Did this answer your question?