Oh you are the developer, now we know where the problem came from. 
Joking aside, actually it is possible to query with multiple Id Numbers. If you supply the Data Query function with an array of Id’s (which act like a IN SQL statement), then it will filter the results. Not every API Table Column, but the ones with the usual Table Id References will work. Also the Id Numbers has to be Integers, otherwise you will get a warning message back.
Example: $app->dsQuery(‘CreditCard’, 100, 0, [ ‘ContactId’ => [ 1, 2, 3, 4] ], [ ‘Id’, ‘FirstName’, ‘LastName’ ]);
Running a test on the Credit Card table with several Contact Id numbers, I was able to get multiple Cards back.
My recommendation is to do defensive programming. Not sure how your code works, but if you can get the Email Address of the User, you could run a check against the Id and Email Address first to see if the Contact is valid. If it is, then you can conduct your Card searching.
Otherwise, you will just have to work possible scenarios of how the Id number could have differed. Then it just boils down to bugs or human error afterwards.