Skip to content

Earn 20–30% every month, for a year.

Refer a shop and get paid for twelve months.

Free to join. No minimum.

Payouts in GHS.

Share your code. They enter it when they register.

The first ten referrals pay 20%. From the eleventh, 30%.

See every signup, trial and subscription as it happens.

Become a partner

API Reference

Built for Engineers. Designed for Scale.

RESTful API with predictable resource-oriented URLs, JSON responses, and standard HTTP response codes.

Base URL

https://console.tallyhubgh.com/api

Authentication

Authenticate requests using Bearer tokens in the Authorization header.

Header

Authorization: Bearer <your_access_token>

Tokens come from POST /api/auth/login and are refreshed with POST /api/auth/refresh. Every request is scoped to the organisation the token belongs to.

GET/api/catalog/products

Products

Retrieve a list of all products with pagination.

Query Parameters

ParameterTypeDescription
limitintegerMax items per page (default: 20, max: 100)
offsetintegerNumber of items to skip
categorystringFilter by category ID

Response

{
  "success": true,
  "data": {
    "products": [
      {
        "id": "prd_8f21c",
        "name": "Rice 5kg — Perfumed",
        "sku": "RCE-5K",
        "sellPrice": 96.00,
        "costPrice": 78.00,
        "categoryId": "cat_provisions"
      }
    ],
    "total": 612
  }
}
POST/api/catalog/products

Products

Create a new product in your inventory.

Request Body

{
  "name": "Milo Tin 400g",
  "sku": "MLO-400",
  "costPrice": 31.00,
  "sellPrice": 38.50,
  "categoryId": "cat_drinks",
  "barcode": "6001234567890"
}

Response

{
  "success": true,
  "message": "Product created",
  "data": { "id": "prd_9a03e" }
}
GET/api/sales/orders

Orders

Retrieve all orders with optional filters.

Response

{
  "success": true,
  "data": {
    "orders": [
      {
        "id": "ord_4c18b",
        "reference": "POS-2026-004813",
        "customerName": "Mensah Stores",
        "total": 412.50,
        "paymentStatus": "PAID",
        "createdAt": "2026-08-10T14:22:03.000Z"
      }
    ],
    "total": 1846
  }
}

Rate Limits

PlanRequests/minBurst
Starter60100
Professional300500
Enterprise1,0002,000

Rate Limit Headers

Check response headers for your current rate limit status.

Errors

Standard HTTP codes. The body always carries a readable message.

400The request body or query failed validation.
401Missing, expired or invalid access token.
403Authenticated, but your role lacks the permission.
404No such record in your organisation.
409Conflicts with existing data, such as a duplicate SKU.
429Rate limited. Check the rate limit headers.
500Something broke on our side. Please report it.
{
  "error": true,
  "statusCode": 403,
  "statusMessage": "Forbidden",
  "message": "Your role does not allow products.update"
}

Webhooks

Paystack payment events are received at /api/billing/paystack/webhook and verified against your secret. Outbound webhooks for business events are not published yet — tell us what you need and we will prioritise it.

Request a webhook event

Need Help?

Our developer support team is here to help.

Contact Support