SwiftRide GO

Partner API

A delivery-as-a-service API — create and track real deliveries on SwiftRide GO's courier network from your own checkout, without a customer-facing account of its own. This is the same real API every endpoint here calls; there's no separate sandbox.

Base URL: https://www.backend.swiftridego.com

Authentication

Every /partner/* request needs your API key in a header — not the bearer token you use to sign in to the dashboard.

X-API-Key: ydg_ab12cd34ef56gH7kPq9rZmXn
  1. Create a merchant account via Open a storefront. It starts pending review — SwiftRide GO hand-vets every partner before granting API access.
  2. Once approved, generate a key from your dashboard's Settings page.
  3. The plaintext key is shown exactly once. Store it yourself — only a hash is kept after that.

Endpoints

Create an order

POST/partner/orders

Creates a real, dispatch-ready delivery order with real distance-based pricing computed at creation time — the same zone pricing every order on the platform uses.

Request body

pickup

object, required

Coordinates {lat, lng} of the pickup point.

pickup_address

string, required

The full street address for pickup (1–500 characters).

dropoff

object, required

Coordinates {lat, lng} of the dropoff point.

dropoff_address

string, required

The full street address for dropoff (1–500 characters).

recipient_name

string, required

Full name of the person receiving the delivery — never your own account's name.

recipient_phone

string, required

A phone number for the recipient, e.g. "+2348011112222".

Response — 201 Created

id

UUID of the created order.

status

One of "pending", "assigned", "picked_up", "in_transit", "delivered", "cancelled".

distance_km

Real haversine distance between pickup and dropoff.

delivery_fee

Real zone-based price — the same pricing every order on the platform uses, computed at creation time.

currency

Always "NGN" today.

created_at / assigned_at / picked_up_at / delivered_at / cancelled_at

ISO 8601 timestamps, null until that stage happens.

curl -X POST https://www.backend.swiftridego.com/partner/orders \
  -H "X-API-Key: ydg_..." \
  -H "Content-Type: application/json" \
  -d '{
    "pickup": { "lat": 6.5244, "lng": 3.3792 },
    "pickup_address": "14 Adeola Odeku, Victoria Island",
    "dropoff": { "lat": 6.5012, "lng": 3.3751 },
    "dropoff_address": "Kofo Abayomi St, 14A, Lagos",
    "recipient_name": "Jane Doe",
    "recipient_phone": "+2348011112222"
  }'

Response example

{
  "id": "8f2a1c3e-2b4d-4e1a-9c3f-1a2b3c4d5e6f",
  "status": "pending",
  "pickup_address": "14 Adeola Odeku, Victoria Island",
  "dropoff_address": "Kofo Abayomi St, 14A, Lagos",
  "recipient_name": "Jane Doe",
  "recipient_phone": "+2348011112222",
  "distance_km": "5.31",
  "delivery_fee": "870.00",
  "currency": "NGN",
  "created_at": "2026-09-04T10:05:00Z",
  "assigned_at": null,
  "picked_up_at": null,
  "delivered_at": null,
  "cancelled_at": null
}

Endpoints

List orders

GET/partner/orders

Every order created by your key's merchant account, newest first. No pagination or filtering yet — if you have high order volume, don't rely on this alone for reconciliation.

curl https://www.backend.swiftridego.com/partner/orders \
  -H "X-API-Key: ydg_..."

Response example

[
  {
    "id": "8f2a1c3e-2b4d-4e1a-9c3f-1a2b3c4d5e6f",
    "status": "delivered",
    "delivery_fee": "870.00",
    "currency": "NGN",
    "created_at": "2026-09-03T14:20:00Z",
    "...": "same shape as Create an order's response"
  }
]

Endpoints

Get an order

GET/partner/orders/{order_id}

A single order, scoped to your account — 404s if it doesn't exist or belongs to a different partner.

curl https://www.backend.swiftridego.com/partner/orders/8f2a1c3e-2b4d-4e1a-9c3f-1a2b3c4d5e6f \
  -H "X-API-Key: ydg_..."

Errors

401

Missing X-API-Key header

The request had no X-API-Key header at all.

401

Invalid or revoked API key

The key doesn't exist, or it's been revoked from your Settings page.

403

Partner account not approved

Your merchant account hasn't been hand-vetted and approved yet — API access is gated on that, same as every other trust-sensitive action on the platform.

403

Partner account banned or suspended

The platform account tied to this key has been banned or is currently suspended.

404

Order not found

The order doesn't exist, or belongs to a different partner account than the one authenticating.

What's not built yet

Don't assume any of the following exist — building against them will break.

Billing / invoicing

delivery_fee is computed and attributed to your account on every order, but nothing charges you for it yet. No invoice, no payment collection, no balance endpoint.

Webhooks

There's no push notification for order status changes. Poll GET /partner/orders/{id} instead.

Order cancellation

Once created, only SwiftRide GO staff can cancel an order — there's no endpoint for you to do it yourself.

Rate limiting

None on these endpoints today. Don't build a client that polls aggressively — a future version may add limits without notice.

Sandbox / test mode

Every call to POST /partner/orders creates a real order in the real dispatch pipeline. There's no separate staging key type.