diff --git a/api/data_channel_interface.cc b/api/data_channel_interface.cc
index d299ced..bddb9d1 100644
--- a/api/data_channel_interface.cc
+++ b/api/data_channel_interface.cc
@@ -40,4 +40,8 @@
   return false;
 }
 
+uint64_t DataChannelInterface::MaxSendQueueSize() {
+  return 16 * 1024 * 1024;  // 16 MiB
+}
+
 }  // namespace webrtc
diff --git a/api/data_channel_interface.h b/api/data_channel_interface.h
index 99ea551..a02bc5e 100644
--- a/api/data_channel_interface.h
+++ b/api/data_channel_interface.h
@@ -174,6 +174,7 @@
   // Returns the number of bytes of application data (UTF-8 text and binary
   // data) that have been queued using Send but have not yet been processed at
   // the SCTP level. See comment above Send below.
+  // Values are less or equal to MaxSendQueueSize().
   virtual uint64_t buffered_amount() const = 0;
 
   // Begins the graceful data channel closing procedure. See:
@@ -182,14 +183,18 @@
 
   // Sends `data` to the remote peer. If the data can't be sent at the SCTP
   // level (due to congestion control), it's buffered at the data channel level,
-  // up to a maximum of 16MB. If Send is called while this buffer is full, the
-  // data channel will be closed abruptly.
+  // up to a maximum of MaxSendQueueSize(). If Send is called while this buffer
+  // is full, the data channel will be closed abruptly.
   //
   // So, it's important to use buffered_amount() and OnBufferedAmountChange to
   // ensure the data channel is used efficiently but without filling this
   // buffer.
   virtual bool Send(const DataBuffer& buffer) = 0;
 
+  // Amount of bytes that can be queued for sending on the data channel.
+  // Those are bytes that have not yet been processed at the SCTP level.
+  static uint64_t MaxSendQueueSize();
+
  protected:
   ~DataChannelInterface() override = default;
 };
diff --git a/pc/sctp_data_channel.cc b/pc/sctp_data_channel.cc
index 0e4ef7d..2ceef83 100644
--- a/pc/sctp_data_channel.cc
+++ b/pc/sctp_data_channel.cc
@@ -31,7 +31,6 @@
 namespace {
 
 static size_t kMaxQueuedReceivedDataBytes = 16 * 1024 * 1024;
-static size_t kMaxQueuedSendDataBytes = 16 * 1024 * 1024;
 
 static std::atomic<int> g_unique_id{0};
 
@@ -671,7 +670,8 @@
 bool SctpDataChannel::QueueSendDataMessage(const DataBuffer& buffer) {
   RTC_DCHECK_RUN_ON(signaling_thread_);
   size_t start_buffered_amount = queued_send_data_.byte_count();
-  if (start_buffered_amount + buffer.size() > kMaxQueuedSendDataBytes) {
+  if (start_buffered_amount + buffer.size() >
+      DataChannelInterface::MaxSendQueueSize()) {
     RTC_LOG(LS_ERROR) << "Can't buffer any more data for the data channel.";
     return false;
   }
