The order type of a point set in Rd maps each (d+1)-tuple of points to its orientation (e.g., clockwise or counterclockwise in R 2). Two point sets X and Y have the same order type if there exists a mapping f from X to Y for which every (d+1 )- Tuple (a1, a 2,..., ad+1) of X and the corresponding tuple (f(a 1), f((a2),..., f(ad+1)) in Y have the same orientation. In this paper we investigate the complexity of determining whether two point sets have the same order type. We provide an O (nd) algorithm for this task, thereby improving upon the O(n[3d/2]) algorithm of Goodman and Pollack (1983). The algorithm uses only order type queries and also works for abstract order types (or acyclic oriented matroids). Our algorithm is optimal, both in the abstract setting and for realizable points sets if the algorithm only uses order type queries.