Check to make sure that:
-Each edge has TWO UNIQUE colours
-Each corner has THREE UNIQUE colours
-There are EXACTLY FOUR centers of each colour
Optional, this depends on your program:
-If there is an option for blank spaces, check to make sure ALL stickers are filled before proceeding
-If there is an option for more than 6 colours, check to make sure that there are EXACTLY SIX UNIQUE colours.
-If custom colour schemes are allowed, ask for opposite colour pairs first
(Yeah I know, a lot of caps emphasizing)
And these are probably obvious to you.
As for possibilities:
Since there is edge parity, you don't even need to care about flipped pairs.
Since it's a program, you need to care if they flip one edge, which isn't possible on a real cube because of its mechanism.
Since it is possible for corners to be twisted...
(This method is used in blindfold cubing)
-Pick two opposite colours (white/yellow)
-Pick two opposite faces (let's assume U and D for now)
-For each corner, count the number of clockwise twists to get the white or yellow sticker to the U or D face.
-If the number of twists is divisible by 3, you're fine.
Also, what language are you using? Just wondering :3
lol, here to help ^_~