Wywołanie zwrotne (ang. callback) jest to technika programowania będąca odwrotnością wywołania funkcji. Zwykle korzystanie z właściwości konkretnej biblioteki polega na wywołaniu funkcji (podprogramów) dostarczanych przez tę bibliotekę. W tym przypadku jest odwrotnie: użytkownik jedynie rejestruje funkcję do późniejszego wywołania, natomiast funkcje biblioteki wywołają ją w stosownym dla siebie czasie.

Najważniejszymi pojęciami są rejestracja oraz wywołanie zwrotne. Kiedy następuje wywołanie zwrotne, funkcja, która je wykonuje, nie wie nic o tym, co się zdarzy; to zależy od tego, co zostało zarejestrowane do wywołania.

Wywołania zwrotne mają również swoje specjalizacje. Jedną z najpopularniejszych specjalizacji wywołań zwrotnych jest polimorfizm, implementowany najczęściej w programowaniu obiektowym. Rejestrowanie funkcji polega na stworzeniu własnej klasy na bazie innej klasy oraz przedefiniowaniu w niej odpowiedniej metody tak, aby wykonywała ona inne czynności, niż to jest założone w jej klasie bazowej. Wywołanie zwrotne odbywa się wtedy w ten sposób, że inna funkcja woła metodę na podanym obiekcie, ale faktyczna procedura, która zostanie wywołana, może być różna, w zależności od tego, jakiej klasy jest podany obiekt.

Inną specjalizacją jest mechanizm sygnałów i slotów, w którym procedura obsługi, zwana tutaj slotem, może być podłączana (czyli rejestrowana) do danego sygnału. Wywołanie sygnału zaś stanowi wtedy wywołanie zwrotne.