A method for hiding network function, NF, instance identifiers, IDs, in a communications network, the method comprising: at an NF repository function, NRF, comprising at least one processor: receiving, from a first NF, an NF registration request message for registering a first NF instance of the first NF, wherein the NF registration request message includes a first NF instance identifier, ID, for identifying the first NF instance; storing, in a data store, a mapping between the first NF instance ID and at least one pseudo NF instance ID, wherein the data store includes mappings between NF instance IDs and related pseudo NF instance IDs; generating and sending, to the first NF, an NF registration response message including the at least one pseudo NF instance ID for identifying the first NF instance; determining, for different types of ingress messages at the NRF that include the at least one pseudo NF instance ID, whether the ingress message is valid based on whether the pseudo NF instance ID is usable or allowed for that message type; in response to determining that the ingress message is invalid, performing an invalid message action; and in response to determining that the ingress message is valid, performing a valid message action. at an NF repository function, NRF, comprising at least one processor: receiving, from a first NF, an NF registration request message for registering a first NF instance of the first NF, wherein the NF registration request message includes a first NF instance identifier, ID, for identifying the first NF instance; storing, in a data store, a mapping between the first NF instance ID and at least one pseudo NF instance ID, wherein the data store includes mappings between NF instance IDs and related pseudo NF instance IDs; generating and sending, to the first NF, an NF registration response message including the at least one pseudo NF instance ID for identifying the first NF instance; determining, for different types of ingress messages at the NRF that include the at least one pseudo NF instance ID, whether the ingress message is valid based on whether the pseudo NF instance ID is usable or allowed for that message type; receiving, from a first NF, an NF registration request message for registering a first NF instance of the first NF, wherein the NF registration request message includes a first NF instance identifier, ID, for identifying the first NF instance; storing, in a data store, a mapping between the first NF instance ID and at least one pseudo NF instance ID, wherein the data store includes mappings between NF instance IDs and related pseudo NF instance IDs; generating and sending, to the first NF, an NF registration response message including the at least one pseudo NF instance ID for identifying the first NF instance; determining, for different types of ingress messages at the NRF that include the at least one pseudo NF instance ID, whether the ingress message is valid based on whether the pseudo NF instance ID is usable or allowed for that message type; in response to determining that the ingress message is invalid, performing an invalid message action; and in response to determining that the ingress message is valid, performing a valid message action.