1. A method in a computer system for identifying a location of an embedded interaction code (EIC) symbol on a surface, the method comprising using a computer to carry out the steps of: capturing an image of the surface containing a portion of an EIC pattern having a plurality of grid cells formed by a plurality of grid lines, each grid line having a plurality of data dot positions and orientation dot positions; for each of a plurality of grid cells within the captured image, for each grid line portion associated with the grid cell, determining a graylevel for each of a plurality of data dot positions, and determining positions of black data dots by comparing the determined graylevels of the data dot positions; for each of a plurality of orientations of the grid cells, determining the number of black data dots at orientation dot positions; determining a correct orientation for the EIC pattern and which grid cells correspond to EIC symbols based on which rotated position of the grid cells contains the fewest number of black dots at orientation dot positions; orienting the EIC pattern based on the determined correct orientation for the EIC pattern; identifying an EIC symbol in the EIC pattern with the corrected orientation, the EIC symbol having an associated grid cell with edges; and extracting bits from at least one edge of the grid cell associated with the identified EIC symbol based on the position of a black data dot on the at least one edge wherein the extracted bits are used to determine the position of the identified EIC symbol relative to the surface.