Dokument kontroli interfejsu (ICD) to sformalizowany opis metod i struktur zaangażowanych w dostarczanie danych wejściowych i otrzymywanie danych wyjściowych z określonego systemu. System opisany przez dokument kontroli interfejsu może być biblioteką oprogramowania lub elementem sprzętu. Dokument nie musi mieć żadnego pojedynczego formatu, ale może być zbiorem akapitów, wykresów, a nawet rysunków technicznych sprzętu interfejsu. Odnosząc się konkretnie do oprogramowania, dokument kontroli interfejsu może przypominać abstrakcyjny interfejs programowania (API), który opisuje publiczne metody lub funkcje, których można użyć do wprowadzania informacji do biblioteki, a także opisuje wynik, który będzie rezultatem. Dokument kontroli interfejsu ogólnie opisuje, jak zintegrować system z większym systemem lub połączyć go z systemem równoległym; nie opisuje żadnego z wewnętrznych działań systemu, które można by opisać w osobnym typie dokumentu.
Celem dokumentu kontroli interfejsu jest dostarczenie twórcom sprzętu lub oprogramowania dokumentacji, której można użyć podczas tworzenia systemu lub oprogramowania, które będą przesyłać dane do iz systemu opisanego przez ICD. Zwykle oznacza to zdefiniowanie dokładnych funkcji lub komponentów sprzętowych w taki sposób, aby ich sygnatury były znane, a tolerancje parametrów do użycia były podane. W inżynierii oprogramowania może to oznaczać znajomość nazwy konkretnej funkcji, jakiego typu zmienne są akceptowane jako parametry i ewentualnie, jakie ograniczenia funkcjonalne są nakładane na przekazywane wartości. W przypadku sprzętu informacje te mogą obejmować funkcje pinów kontroli złącza szeregowego, wszelkie używane przerwania sprzętowe oraz prędkość pracy urządzenia.
Jedną z rzeczy, które nie są szczegółowo opisane w dokumencie kontroli interfejsu, jest to, w jaki sposób system przekłada dane wejściowe na dane wyjściowe lub ogólnie w jaki sposób powstają dane wyjściowe. Pozwala to programistom na wąsko skoncentrowane spojrzenie na system podczas tworzenia interfejsu, ale wymaga również od programistów systemu, aby szczegóły ICD ściśle przestrzegały wytycznych zawartych w samym dokumencie. Wygodą dla autorów dokumentu kontroli interfejsu i twórców systemu jest to, że wewnętrzna implementacja systemu nie jest opisana w dokumencie, a zatem może być dowolnie zmieniana bez wpływu na zewnętrzny rozwój interfejsów w oparciu o ICD.
W niektórych sytuacjach dokument kontroli interfejsu może pozwolić na testowanie systemów bez konieczności korzystania z gotowego interfejsu. Można to zrobić, symulując różne typy danych wyjściowych, które system może generować zgodnie z opisem w ICD, a następnie przesyłając je przez interfejs opracowany zewnętrznie. Systemy, które są zainteresowane obsługą tylko jednej strony systemu — na przykład wyjścia, w przypadku sprzętu takiego jak urządzenie wyświetlające — mogą zapewnić, że interfejs będzie działał zgodnie ze specyfikacjami bez konieczności wprowadzania danych ze świata rzeczywistego.