1. A system for managing program data, comprising: a memory operable to store program data, the program data including one or more program identifiers (IDs) each associated with one or more service provider IDs, each service provider ID having a generic component and a specific component; and a processor coupled to the memory, the processor being operable to: receive, from a reader terminal, a first service provider ID, the first service provider ID having a first generic component and a first specific component; determine whether the first service provider ID matches one of the one or more service provider IDs stored in the memory; transmit, to the reader terminal, in the event that the first service provider ID matches one of the one or more service provider IDs stored in the memory, the one or more program IDs associated with the one or more service provider IDs that match the first service provider ID; determine, in the event that the first service provider ID does not match one of the one or more service provider IDs stored in the memory, whether the first generic component of the first service provider ID matches the generic component of the one or more service provider IDs stored in the memory; and transmit, to the reader terminal, in the event that the first service provider ID does not match one of the one or more service provider IDs stored in the memory and in the event that the first generic component of the first service provider ID matches the generic component of the one or more service provider IDs stored in the memory, the one or more program IDs associated with the one or more service provider IDs having a generic component that matches the first generic component of the first service provider ID.