A computer-implemented method, comprising: receiving, at a first computing device having one or more processors, a command to transfer a data payload to a second computing device; receiving, at the first computing device, information from the second computing device using a near-field communication, NFC, protocol, the information being indicative of a plurality of communication protocols capable of being received at the second computing device, the plurality of communication protocols including the NFC communication protocol; obtaining, at the first computing device, a data transfer rate corresponding to each of the plurality of communication protocols, each data transfer rate being indicative of an expected rate of data transfer for its corresponding communication protocol; obtaining, at the first computing device, a setup time corresponding to each of the plurality of communication protocols, each setup time being indicative of an amount of time to establish communication between the first and the second computing devices for its corresponding communication protocol; estimating, at the first computing device, a transfer time corresponding to each of the plurality of communication protocols, each transfer time being indicative of an amount of time to transfer the data payload from the first computing device to the second computing device using its corresponding communication protocol, wherein the transfer time for each particular communication protocol is based on the data transfer rate and setup time for the particular communication protocol; selecting, at the first computing device, a specific communication protocol of the plurality of communication protocols based on the estimated transfer times; and transmitting, from the first computing device, the data payload to the second computing device using the specific communication protocol. receiving, at a first computing device having one or more processors, a command to transfer a data payload to a second computing device; receiving, at the first computing device, information from the second computing device using a near-field communication, NFC, protocol, the information being indicative of a plurality of communication protocols capable of being received at the second computing device, the plurality of communication protocols including the NFC communication protocol; obtaining, at the first computing device, a data transfer rate corresponding to each of the plurality of communication protocols, each data transfer rate being indicative of an expected rate of data transfer for its corresponding communication protocol; obtaining, at the first computing device, a setup time corresponding to each of the plurality of communication protocols, each setup time being indicative of an amount of time to establish communication between the first and the second computing devices for its corresponding communication protocol; estimating, at the first computing device, a transfer time corresponding to each of the plurality of communication protocols, each transfer time being indicative of an amount of time to transfer the data payload from the first computing device to the second computing device using its corresponding communication protocol, wherein the transfer time for each particular communication protocol is based on the data transfer rate and setup time for the particular communication protocol; selecting, at the first computing device, a specific communication protocol of the plurality of communication protocols based on the estimated transfer times; and transmitting, from the first computing device, the data payload to the second computing device using the specific communication protocol.