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"
}
]
}