Using external ids to send measurements/alarms

Is the global Id the only way to send data for a device or can I use the external ID?If we write a client or app but we have access mainly to an external id (serial number or whatever id), I either- keep a mapping table - Every time I get data I need to ask the identity api for the global Id, and then i use the measurement API to send the data.