Un document de control al interfeței (ICD) este o descriere oficială a metodelor și structurilor implicate în furnizarea de date de intrare și primirea rezultatelor de la un anumit sistem. Sistemul care este descris de documentul de control al interfeței poate fi o bibliotecă de software sau o piesă hardware. Documentul nu trebuie să urmeze niciun format unic, ci poate fi o colecție de paragrafe, diagrame sau chiar doar desene tehnice ale hardware-ului interfeței. Când se face referire în mod specific la software, un document de control al interfeței poate să semene cu interfața de programare abstractă (API), care descrie metodele publice sau funcțiile care pot fi utilizate pentru a introduce informații în bibliotecă și, de asemenea, descrie rezultatul care va rezulta. Un document de control al interfeței descrie în general modul de integrare a sistemului într-un sistem mai mare sau de conectare la un sistem paralel; nu descrie nicio funcționare internă a sistemului, care ar putea fi descrisă într-un tip separat de document.
Scopul unui document de control al interfeței este de a oferi dezvoltatorilor de hardware sau software o documentație care poate fi utilizată la crearea unui sistem sau software care va transfera date către și de la sistemul pe care îl descrie ICD. Aceasta înseamnă de obicei definirea funcțiilor exacte sau a componentelor hardware într-un mod în care semnăturile lor să fie cunoscute și să fie date toleranțele parametrilor de utilizare. În ingineria software, aceasta poate însemna cunoașterea numelui unei anumite funcții, ce tip de variabile sunt acceptate ca parametri și, eventual, ce limite funcționale sunt puse pe valorile care sunt trecute. Pentru o piesă hardware, aceste informații pot include ce funcții funcționează pinii unui control al conectorului serial, orice întreruperi hardware care sunt utilizate și viteza de lucru a dispozitivului.
Un lucru pe care un document de control al interfeței nu îl descrie în mod specific este modul în care sistemul traduce intrarea în ieșire sau modul în care este produsă ieșirea, în general. Acest lucru le permite dezvoltatorilor să aibă o viziune concentrată asupra sistemului atunci când creează o interfață, dar necesită, de asemenea, ca dezvoltatorii sistemului pe care îi detaliază ICD să respecte cu strictețe liniile directoare specificate în documentul în sine. O comoditate pentru scriitorii unui document de control al interfeței și dezvoltatorii sistemului este că implementarea internă a sistemului nu este descrisă în document și, prin urmare, poate fi schimbată liber, fără a afecta dezvoltarea exterioară a interfețelor care se bazează pe ICD.
În unele situații, un document de control al interfeței poate permite testarea sistemelor fără a fi nevoie de fapt să folosească o interfață completă. Acest lucru se poate face prin simularea diferitelor tipuri de ieșire pe care un sistem le poate genera așa cum este descris în ICD și apoi trecerea acelei ieșiri prin interfața dezvoltată extern. Sistemele care sunt interesate doar să gestioneze o parte a sistemului – cum ar fi ieșirea, în cazul hardware-ului, cum ar fi un dispozitiv de afișare – pot asigura că interfața funcționează în conformitate cu specificațiile fără a necesita intrare în lumea reală.