My first thought would be that this would be confusing and not very fuctional. I assumed that the implementation of categories would be something that would be provided within each application that uses categories. On that basis it might make sense to define a service contract that provides basic filtering functionality to any application. That way each application could use the service contracts api to develop implementations. Though it is unlike the payment gateway in that there will not be multiple services to interface, there are similarities with the search service contract. In fact, maybe categories is a subset of the search service contract functionality?