Everest

Everest Partner API

Add Everest delivery to your checkout, orders, and fulfillment flow.

This guide is for ecommerce stores, restaurants, pharmacies, supermarkets, and local vendors that want Everest to quote, create, track, bill, and update deliveries from their own systems.

API version/api/partners/v1
AuthenticationPartner API key
ModesSandbox + Live
BillingPrepaid / Postpaid

Onboard quickly, verify before live traffic.

Businesses can start with essential details, then add verification evidence before live keys can be issued.

Progressive access

Business-first onboarding

Start with a short application, then complete business and owner verification when the business is ready to move toward live access.

Checkout delivery flow

Quote delivery before payment, create the delivery after checkout, and mirror Everest status changes back into your order system.

Controlled live access

Sandbox keys are safe for testing. Live keys require verification, billing readiness, webhook proof, and Everest approval.

1

Apply

Submit business profile, operating city, delivery use case, expected volume, and the main operations contact.

2

Verify

Add legal business name, registration number, tax reference, owner/admin identity reference, address, and document checklist.

3

Activate sandbox

After Everest approval, create a portal password, invite team members, generate sandbox credentials, and configure webhooks.

4

Test delivery lifecycle

Create quotes and sandbox deliveries, simulate assignment, pickup, completion, failure, and webhook retries.

5

Request live access

Submit go-live once business verification, sandbox delivery, webhook signature verification, billing, ledger, and support contacts pass.

Quote before payment. Create after payment. Track with webhooks.

The merchant owns checkout and customer payment. Everest owns delivery orchestration and status updates once the delivery is created.

Checkout flow
Set sandbox environment
export BASE_URL="https://staging-api.everestmobility.co"
export SANDBOX_PARTNER_KEY="paste-your-sandbox-key"
Create a quote
curl -sS -X POST "$BASE_URL/api/partners/v1/delivery-quotes/" \
  -H "Content-Type: application/json" \
  -H "X-Everest-Partner-Key: $SANDBOX_PARTNER_KEY" \
  -d '{
    "service_type": "DELIVERY_BIKE",
    "pickup": {
      "label": "Kara Kitchen, Lekki",
      "latitude": "6.447400",
      "longitude": "3.472300",
      "city": "Lagos"
    },
    "dropoff": {
      "label": "Customer Address, Victoria Island",
      "latitude": "6.428100",
      "longitude": "3.421900",
      "city": "Lagos"
    },
    "package": {
      "description": "Prepared food order",
      "weight_kg": "1.20"
    }
  }'
Create the delivery
curl -sS -X POST "$BASE_URL/api/partners/v1/deliveries/" \
  -H "Content-Type: application/json" \
  -H "X-Everest-Partner-Key: $SANDBOX_PARTNER_KEY" \
  -H "Idempotency-Key: order_1001_delivery" \
  -d '{
    "quote_id": "$QUOTE_ID",
    "external_order_id": "ORDER-1001",
    "recipient": {
      "name": "Customer One",
      "phone": "2348000009002"
    },
    "metadata": {
      "checkout_id": "chk_1001",
      "branch_id": "lekki-01"
    }
  }'

Find an operation and copy a starter request.

Search the current OpenAPI contract by task, path, method, or operation ID. Replace path parameters and request bodies before sending.

API reference
29 operations

Applications

POST
Submit a partner application./applications/postApplications
GET
Check partner application review status./applications/{application_id}/status/getApplicationsByApplicationIdStatus

Deliveries

POST
Quote a delivery fee and serviceability./delivery-quotes/postDeliveryQuotes
GET
List partner deliveries./deliveries/getDeliveries
POST
Create a delivery./deliveries/postDeliveries
GET
Read one delivery./deliveries/{delivery_id}/getDeliveriesByDeliveryId
GET
List delivery proofs./deliveries/{delivery_id}/proofs/getDeliveriesByDeliveryIdProofs
POST
Record pickup, delivery, or return proof./deliveries/{delivery_id}/proofs/postDeliveriesByDeliveryIdProofs
POST
Cancel a delivery./deliveries/{delivery_id}/cancel/postDeliveriesByDeliveryIdCancel
POST
Retry dispatch for a deferred delivery./deliveries/{delivery_id}/dispatch/retry/postDeliveriesByDeliveryIdDispatchRetry
GET
Public delivery tracking./track/{tracking_token}/getTrackByTrackingToken
GET
List recent API audit logs./audit-logs/getAuditLogs

Sandbox

POST
Simulate a sandbox delivery lifecycle transition./sandbox/deliveries/{delivery_id}/simulate/postSandboxDeliveriesByDeliveryIdSimulate

Webhooks

GET
List webhook endpoints./webhook-endpoints/getWebhookEndpoints
POST
Create a webhook endpoint./webhook-endpoints/postWebhookEndpoints
POST
Rotate webhook signing secret./webhook-endpoints/{endpoint_id}/rotate-secret/postWebhookEndpointsByEndpointIdRotateSecret
POST
Queue or send a webhook test event./webhook-endpoints/{endpoint_id}/test/postWebhookEndpointsByEndpointIdTest
GET
List webhook delivery attempts./webhook-deliveries/getWebhookDeliveries
POST
Retry a webhook delivery./webhook-deliveries/{webhook_delivery_id}/retry/postWebhookDeliveriesByWebhookDeliveryIdRetry

Billing

GET
Read partner wallet and credit summary./billing/summary/getBillingSummary
GET
List wallet top-ups./billing/topups/getBillingTopups
POST
Initialize a Paystack top-up./billing/topups/postBillingTopups
POST
Verify a Paystack top-up./billing/topups/verify/postBillingTopupsVerify
GET
List invoices./billing/invoices/getBillingInvoices
POST
Issue an invoice for unsettled posted charges./billing/invoices/postBillingInvoices
GET
Read one partner invoice./billing/invoices/{invoice_id}/getBillingInvoicesByInvoiceId
POST
Record payment for a partner invoice./billing/invoices/{invoice_id}/mark-paid/postBillingInvoicesByInvoiceIdMarkPaid
GET
List ledger entries./ledger-entries/getLedgerEntries
GET
Export ledger entries as CSV./ledger-entries/export.csvgetLedgerEntriesExportCsv

Keep merchant systems synced with signed webhooks.

Every webhook receiver should verify signatures, reject stale timestamps, deduplicate delivery IDs, and treat handlers as idempotent.

Events

partner.delivery.status_changed

Delivery assignment, pickup, transit, failed, and completed status updates.

partner.delivery.proof_recorded

Pickup or dropoff proof has been recorded against a delivery.

partner.billing.invoice.issued

Invoice has been created for postpaid or contract billing.

partner.billing.topup.success

Prepaid wallet top-up was verified and posted.

Delivery fees must reconcile cleanly.

Prepaid partners fund a wallet before live traffic. Postpaid and contract partners need an approved credit limit, invoices, ledger records, and finance contacts.

Money movement
Quote expiry

If a quote expires before checkout completes, request a new quote and show the customer the updated fee.

Idempotency

Use a stable Idempotency-Key when creating deliveries after payment confirmation.

Ledger export

Finance teams can export delivery charges, top-ups, invoices, and settlements.

Paystack top-ups

Prepaid wallet funding is verified before the balance is considered available.

Live keys require evidence, not just approval.

The portal readiness checklist prevents a partner from moving into production before the business, technical, operational, and billing pieces are ready.

Launch gate
Business verification approved

Business registration, owner/admin identity reference, address, and document review must pass.

Sandbox delivery completed

At least one quote-to-complete sandbox lifecycle must be tested.

Webhook verified

A signed webhook must be delivered successfully and handled idempotently.

Billing ready

Prepaid wallet is funded or approved postpaid/contract credit is configured.

Ledger tested

Finance can reconcile delivery charges, top-ups, invoices, and CSV exports.

Support contacts set

Support, technical, finance, and compliance contacts are available for escalation.

Ready to test an integration?

Submit the business application first. Approved partners receive sandbox access before any real delivery orders are created.

Start onboarding