Kontrolni dokument sučelja (ICD) je formalizirani opis metoda i struktura uključenih u pružanje ulaznih podataka i primanje izlaza iz određenog sustava. Sustav koji je opisan kontrolnim dokumentom sučelja može biti softverska biblioteka ili dio hardvera. Dokument ne mora slijediti niti jedan format, već može biti zbirka paragrafa, grafikona ili čak samo tehničkih crteža hardvera sučelja. Kada se posebno odnosi na softver, kontrolni dokument sučelja može nalikovati i apstraktnom programskom sučelju (API), koje opisuje javne metode ili funkcije koje se mogu koristiti za unos informacija u knjižnicu te također opisuje izlaz koji će rezultirati. Kontrolni dokument sučelja općenito opisuje kako integrirati sustav u veći sustav ili ga povezati s paralelnim sustavom; ne opisuje nikakav interni rad sustava, koji bi mogao biti naveden u zasebnoj vrsti dokumenta.
Svrha kontrolnog dokumenta sučelja je pružiti programerima hardvera ili softvera neku dokumentaciju koja se može koristiti pri stvaranju sustava ili softvera koji će prenositi podatke u i iz sustava koji ICD opisuje. To obično znači definiranje točnih funkcija ili hardverskih komponenti na način da su njihovi potpisi poznati i da se daju tolerancije parametara za upotrebu. U softverskom inženjerstvu to može značiti poznavanje naziva određene funkcije, koje vrste varijabli se prihvaćaju kao parametri i, eventualno, koja su funkcionalna ograničenja postavljena na vrijednosti koje se prosljeđuju. Za dio hardvera, ove informacije mogu uključivati koje funkcije kontroliraju pinovi serijskog konektora, sve hardverske prekide koji se koriste i radnu brzinu uređaja.
Jedna stvar koju kontrolni dokument sučelja ne opisuje izričito je kako sustav prevodi ulaz u izlaz ili općenito kako se izlaz proizvodi. To omogućuje programerima da zauzmu usko fokusiran pogled na sustav prilikom stvaranja sučelja, ali također zahtijeva da se programeri sustava o kojima ICD pojedinosti striktno pridržavaju smjernica navedenih u samom dokumentu. Pogodnost za pisce kontrolnog dokumenta sučelja i programere sustava je to što interna implementacija sustava nije opisana u dokumentu i stoga se može slobodno mijenjati bez utjecaja na vanjski razvoj sučelja oslanjajući se na ICD.
U nekim situacijama, kontrolni dokument sučelja može omogućiti testiranje sustava bez stvarnog korištenja dovršenog sučelja. To se može učiniti simuliranjem različitih vrsta izlaza koje sustav može generirati kako je opisano u ICD-u, a zatim propuštanjem tog izlaza kroz vanjsko razvijeno sučelje. Sustavi koji su zainteresirani za rukovanje samo jednom stranom sustava – kao što je izlaz, u slučaju hardvera kao što je uređaj za prikaz – mogu osigurati da sučelje funkcionira unutar specifikacija bez potrebe za unosom iz stvarnog svijeta.