Endpoint
GET /isw/payments/billerCategories
```http
## Authentication
This endpoint requires authentication using Interswitch's signature-based authentication. The middleware automatically handles key exchange and generates the required authentication headers including:
- Authorization token
- Terminal key from key exchange
- Request signature
## Request
This endpoint does not require any query parameters or request body. The terminal ID is automatically included from the application configuration.
## Response
Returns a JSON response containing an array of biller categories.
<ResponseField name="categories" type="array">
Array of biller category objects
<ResponseField name="categoryId" type="string">
Unique identifier for the category
</ResponseField>
<ResponseField name="categoryName" type="string">
Display name of the category
</ResponseField>
<ResponseField name="categoryDescription" type="string">
Description of the category
</ResponseField>
</ResponseField>
## Code example
<CodeGroup>
```bash cURL
curl --request GET \
--url http://localhost:8081/isw/payments/billerCategories \
--header 'Content-Type: application/json'
```http
```java Java
String response = restTemplate.getForObject(
"http://localhost:8081/isw/payments/billerCategories",
String.class
);
```http
```javascript JavaScript
const response = await fetch('http://localhost:8081/isw/payments/billerCategories', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const categories = await response.json();
```http
</CodeGroup>
## Error responses
If the key exchange fails, the endpoint returns an error message:
```json
{
"error": "Cannot Fetch Categories,Key Exchange failed"
}
```http
## Next steps
After retrieving categories:
1. Use a category ID to fetch billers in that category using [Get billers by category](/api-reference/billers/get-category-billers)
2. Display categories to users for biller selection