The system stores a list of valid account code numbers. When making a call or during the call, a user can enter the account code they want associated with that call. The system checks the account code against the list of valid codes and requests the user to reenter the code if it is not valid. For incoming calls, the Caller ID can be used to match it with an account code from the list of valid codes and report the account code with the call for billing.