From my book USB Complete:
Bulk endpoints toggle the value in every transaction, resetting the data toggle only after completing a Set Configuration, Set Interface, or Clear Feature(ENDPOINT_HALT) request. Interrupt endpoints can behave the same as bulk endpoints. Or to simplify processing with the risk of losing some data, an interrupt IN endpoint can toggle
its data toggle in each transaction without checking for the host’s ACK.
In the USB 2.0 spec, see 5.75 and 9.45.