Una interfaz de funciones foráneas (Foreign function interface, en inglés) es un mecanismo por el cual un programa escrito en un lenguaje de programación puede realizar llamadas a funciones o usar los servicios escritos en otro.
Otros lenguajes usan otra terminología, así, el lenguaje Ada habla de "language bindings", mientras que en Java se denomina Java Native Interface, o JNI.
No obstante, se suele hablar de forma genérica de Foreign function interface para referirse a estos mecanismos.
El término foreign function interface no se suele usar para describir entornos de ejecución multilenguajes como Microsoft Common Language Runtime, donde existe un "sustrato" común que permite a cualquier lenguaje usar los servicios definidos por otro, siempre que cumplan el Common Language Specification.
Además, existen muchas otras arquitecturas como Java RMI, RPC, CORBA y SOAP, que permiten usar servicios escritos en otros lenguajes; a tales arquitecturas no se les suele considerar FFIs.