FIRS Resource Data

All eleven endpoints below are simple GET lookups with no query parameters, and share the same response envelope — data is a flat array of reference objects.

These endpoints proxy FIRS live on every call — each request makes a real-time outbound call to FIRS (up to a 30-second timeout) and returns whatever FIRS returns, unmodified. There's no local caching layer, so cache the result client-side if you call these frequently or need low latency.
Endpoint Item shape
GET /v1/core/resources/invoice-types{ code, value }
GET /v1/core/resources/payment-means{ code, value }
GET /v1/core/resources/tax-categories{ code, value, percent }
GET /v1/core/resources/currencies{ code, name, symbol, symbol_native, name_plural, decimal_digits, rounding }
GET /v1/core/resources/vat-exemptions{ heading_no, harmonized_system_code, tariff_category, tariff, description }
GET /v1/core/resources/product-codes{ hscode, description }
GET /v1/core/resources/service-codes{ code, description }
GET /v1/core/resources/invoice-quantity-codes{ code, name, description }
GET /v1/core/resources/lgas{ code, name, state_code }
GET /v1/core/resources/states{ code, name }
GET /v1/core/resources/countries{ name, alpha_2, alpha_3, country_code, region, sub_region, ... }

None of these items carry a local id field — they're FIRS-issued codes, not portal records. Use the code (or, for VAT exemptions, heading_no; for product codes, hscode) as the value you send on invoice fields like tax_category, product_category, service_category, and price.price_unit.

invoice-quantity-codes backs invoice_line[].price.price_unit on Create Invoice (Full) and the Access Point Provider's submit/validate endpoints — FIRS caps that field at 3 characters (e.g. C62), so free-text units like "NGN per 1" are no longer accepted.

Example

bash
curl https://invoice-direct.gemspaysolution.com/api/v1/core/resources/currencies \
  -H "x-api-key: tpk_your_api_key"
json
{
  "success": true,
  "message": "Success",
  "data": [
    {
      "code": "NGN",
      "name": "Nigerian Naira",
      "symbol": "₦",
      "symbol_native": "₦",
      "name_plural": "Nigerian nairas",
      "decimal_digits": 2,
      "rounding": "0"
    }
  ]
}

Continue As

Choose your account type to proceed

Don't have an account? Sign up here