RapidXpk

Sign in

with your RapidXpk account

Trouble signing in? WhatsApp us →

Live inventory, orders, COD and settlements — one place, updated as it happens.

  • Track every order end to end
  • Watch stock move in real time
  • Download settlement statements
RapidXpk · Karachi fulfillment & delivery Encrypted connection
RapidXpk
RapidXpk
Main menu
Operations
Setup
Tools

Brands & agencies

Every brand we work for
BrandCodeComes viaHealthOrders 30dActions
Agencies
AgencyContactStatusBrandsActions

View as shows you exactly what that brand or agency sees when they sign in — you stay signed in as admin the whole time (no password, no session swap), and every view-as is written to the audit log. Audit opens their last 100 logged actions.

Choose a company

Direct brands
Agencies — brands that come through a partner

Tap a brand to open its dashboard. Tap an agency to drill into its brands, orders, COD and billing. Numbers are the last 30 days; the arrow compares with the 30 before that.

Recent activity

Latest orders

OrderProductAreaCODStatusAction

Brand health

ALL CLIENTS · 60 DAYS
BrandLast 30dPrev 30dTrendLast orderHealth

Red = churn risk: shrinking volume or gone quiet. Call them before they call a competitor.

Inbound — receiving

DateSKUProductExpectedReceivedStatus

Brands announce a shipment; we count it on arrival. Confirmed units go straight into live stock — any mismatch is flagged, never hidden.

Adjustments & damage log

AUDITED
DateSKUChangeReasonNote

Every stock change is logged permanently — the client can see this log. Damage is never silently absorbed.

Stock on hand

SKUProductOn handReservedAvailableLevelAction

Reserved = units assigned to orders that haven't shipped yet. Available = on hand − reserved. Rows turn red at 20 units.

New order

⌁ Scan at the POS →

All orders

OrderProductCustomerAreaCODStatusAction

Log a return

Returns & refusals

ReturnOrderProductReasonStatusAction

Sellable returned units are restocked to your inventory — the count goes back up on the Inventory tab.

Commission owed to you

MonthOrdersOrder valueCommissionPaid

Rate card

Charge sheet

OrderDateOrder value FulfillmentDeliveryTotal fee

Fulfillment fee = the greater of your minimum or the percentage of order value. Only delivered, non-voided orders are billed.

Rent & other charges

ADMIN
DateDescriptionTypeAmount

SLA performance

Measured from order received to delivered. The target comes from this client's rate card (SLA hours).

API access

DEVELOPER

Issue a key so this brand’s system can push orders straight into RapidXpk. The full key is shown once — copy it then.

KeyEnvLabelCreatedLast used

Brand file

Unit economics

INTERNAL — NOT CLIENT-VISIBLE DATA

COD aging

UNSETTLED

How long collected COD has been waiting to be settled. Our promise: settled within 48 hours.

Settlement position

📦 Send a parcel پارسل بھیجیں
1 · Customer name گاہک کا نام
2 · Customer phone فون
3 · Deliver to پتہ
3b · Nearest landmark قریبی نشانی — optional, if the building itself is not on the map
4 · What is inside اندر کیا ہے
5 · Amount (Rs) رقم
6 · Payment ادائیگی
7 · Pick up from کہاں سے لینا ہے
8 · Which brand کون سا برانڈ
📍 Parcel map پارسل کا نقشہ

Each box is an open parcel at the customer's location. White = waiting, amber = out for delivery, red = failed attempt. Dashed = approximate, lime border = pinned on the nearest landmark. 🏍️ = a rider on duty, live. 🏢 = RapidXpk HQ. Tap anything for details.

🛵 My parcels میرے پارسل
💬 WhatsApp RapidXpk · ہم سے بات کریں

Agency partners

AgencyBrandsOrders 30dDelivered %RTO %COD outstandingCommission owedStatus
No agencies yet — add your first partner.

Click an agency to drill into its brands, orders, COD, billing and performance.

Brands under your agency

BrandCodeOrders 30dDelivered %RTO %COD outstanding

Onboard a new brand

INVITE

Generate a code, send it to the brand. When RapidXpk creates their account with that code they are linked to your agency automatically.

Your terms

RATE

COD remittance

With riders = collected at the doorstep, cash still in a rider’s hand. At office = handed over & verified — remitted to you next. In transit = out for delivery. Settled = already transferred to you, order-by-order — no lump sums.

Delivered orders — this cycle

OrderCustomerAreaCODRemittance

Live rider map

Boxes = open parcels at the customer's location (white waiting, amber out for delivery, red failed; dashed = approximate, lime border = landmark pin). 🏢 = HQ. 🏍️ bike = rider: green = on duty & reporting. Amber = on duty but gone quiet (no ping >90s). Grey = off duty. Tap a rider to draw today’s route — lime = GPS measured, amber dashed = road-routed across a signal gap. Updates every 10s.

Petrol report

RiderDayShiftsMeasured kmEst. kmTotal kmLitresAmount

Litres = total km ÷ mileage (the petrol the bike actually burned for work). Amount = litres × petrol price. Est. km = road distance filled across a signal/battery gap (real streets, never a straight line). Riders are on salary, so this is petrol for work distance only — personal trips off-duty are never counted.

End-of-day rider log

Stop = stayed in one place ≥ 3 min (a delivery, a break, or stuck in traffic) with where & how long. Ride = a moving leg with km and average speed; a leg crawling under 12 km/h is flagged slow = likely traffic. Signal lost = a blackout stretch filled by road-routing. Tap a stop to see it on the map.

Add rider

Zones & subzones — Karachi

Every zone is a coloured territory. Tap a zone on the map (or a row in the legend) to assign riders to it — or set a rider’s zone straight from their card below. Orders from that area go to that rider’s queue.

Rider load

Out now = parcels this rider is carrying. To collect = COD on those parcels. In pocket = cash collected at doorsteps but not yet handed to the office — clear it with “Receive cash”. Only received cash becomes eligible for client remittance.

Cash handover history

WhenRiderExpectedReceivedShortfallOrders

Access & accounts

Login passwords are hashed by Supabase Auth and can never be displayed — by anyone. Use Reset to email an account a new-password link. Anything you manage by hand (rider app PINs, courier portals, SIM accounts) belongs in the Vault below.

AccountLogin IDRoleSince

Riders directory

RiderPhoneZoneStatus

Credential vault

LabelLoginSecretNote

Audit log

WhenWhoActionEntityDetails

Send us your orders automatically

Right now someone probably types each order in by hand. Pick whichever option below matches the system you already use — then follow the steps. Most brands are done in under ten minutes, and you never have to touch it again. If anything is confusing, tap Ask us to set it up at the bottom and we’ll do it for you.

Send us a file

Nothing to install, nothing to configure. Good way to start today and switch to an automatic connection later.

1
In whatever system you use, export your orders as CSV or Excel. Most systems have this under Orders → Export.
2
Make sure each row has: customer name, phone, full address, what they ordered, and the amount to collect (put 0 if already paid).
3
WhatsApp the file to us, or open the Shopify tab and paste it into the Manual import box — it reads the file and creates the orders for you.
Tip: if your export has a column with the customer’s map location or coordinates, keep it in. That lets the rider navigate to the exact door instead of the general area, which in Karachi is the difference between arriving and phoning for directions.

Connect your Shopify store

You paste one address into Shopify. After that every order you receive appears in this portal within seconds, and we start packing it.

1
Copy your personal connection link — tap the button at the bottom of this section.
2
In Shopify, go to SettingsNotifications → scroll down to Webhooks.
3
Click Create webhook. Set Event to Order creation and Format to JSON.
4
Paste your link into the URL box and click Save. That’s the whole job.
5
Place a test order in your store. It should show up in the Shopify tab here within a few seconds.
Orders marked paid in Shopify come through as prepaid and stay out of cash reconciliation. Everything else comes through as cash on delivery for the order total.

Connect your Odoo

This is done entirely inside Odoo’s own settings — no custom module, no development work, and nothing to pay anyone for. If an Odoo partner has quoted you for a module to do this, read the note at the bottom before you agree to it.

1
In Odoo, turn on developer mode: Settings → scroll to the very bottom → Developer ToolsActivate the developer mode.
2
Go to SettingsTechnicalAutomationAutomation Rules (called Automated Actions in older versions).
3
Click New. Set the Model to Sales Order, and set the trigger so it runs when the order is confirmed.
4
For the action, choose Send Webhook Notification, and put this in the URL box:
https://api.rapidxpk.com/v1/orders/odoo
5
Save it, then confirm any test order in Odoo. Tell us and we’ll confirm we received it.
What we need from you to finish the connection
  • Your Odoo version, and whether it is Odoo Online, Odoo.sh, or on your own server
  • Which Odoo plan you are on (the external connection is not available on the free tier)
  • An Odoo API user and key, plus your database name
  • Your product codes, so our stock list matches yours
If someone has quoted you for a custom module: Odoo’s webhook only sends us the order number, not the full order — so we read the rest back through Odoo’s standard connection, which every paid Odoo plan already includes. That is why no module needs to be built and no development fee should apply. Send us the quote and we will talk to your Odoo partner directly.

Anything else — WooCommerce, custom site, your own ERP

If someone technical looks after your system, this section is for them. You do not need to understand it — just forward it on.

1
Tell us you want an API key. We issue a test key and a live key for your brand only.
2
Your developer sends each new order to us as soon as it is confirmed, including the customer’s name, phone, address, items, and the amount to collect.
3
We send delivery updates back automatically — packed, on the way, delivered, cash collected — so your system stays in sync without anyone checking manually.
If your checkout captures the customer’s map location, send those coordinates with the order. Karachi addresses alone put a rider on the right block; coordinates put them at the right door.

Your API access

DEVELOPER

Give these to whoever connects your system. The key itself is secret — we show only its first characters here, so keep the copy we sent you somewhere safe.

KeyEnvLabelStatus
Checking…

Status updates back to your system

WEBHOOK

Every time an order changes (packed, out for delivery, delivered, failed attempt, return) we POST it to your URL, signed. Or pull changes in batches with GET /v1/orders?updated_since=.

Odoo connection (no code)

ODOO

Save an Odoo API user here, then point Odoo's Send Webhook Notification action at https://api.rapidxpk.com/v1/orders/odoo/<your API key>. We read each confirmed order back from Odoo ourselves.

Not sure which one is right for you? Tap Ask us to set it up on any option — we will do the setup with you on a call, and you can start sending orders as a file the same day while we build the automatic connection in the background.

Store connection

Paste this URL into the client’s Shopify admin once. After that, every new order lands here automatically — no exports, no copying.

Incoming orders

Shopify #CustomerCity / AreaItemsTotalPaymentStatusAction
No orders received yet.

Orders marked paid in Shopify import as Prepaid and stay out of COD reconciliation. Everything else imports as COD for the order total. Non-Karachi orders are hidden by default — switch to All cities to see them.

Manual import (backup)

For stores not connected yet: Shopify admin → Orders → Export → CSV, then paste or drop it here.

Website enquiries

Brands who came to us — the site contact form and referrals. Prospects we reached out to live under Our outreach.

WhenNameBrandFromVolumeContactMessageStatusAction

Our outreach

Brands we approached ourselves — nobody here filled in the website form.

WhenBrandOwnerContactWorking itNotesStatusAction