| Condensed Consolidated Statements of Changes in Stockholders' Deficit (Unaudited) - USD ($)
 | Total | Common Stock | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Loss | 
| Beginning balance, amount at Dec. 31, 2021 | $ (17,286,423) | $ 23,524 | $ 16,380,597 | $ (33,543,351) | $ (147,193) | 
| Beginning balance, shares at Dec. 31, 2021 |  | 23,523,969 |  |  |  | 
| Net income (loss) | (13,962) |  |  | (13,962) |  | 
| Foreign currency translation gain (loss) | (41,949) |  |  |  | (41,949) | 
| Stock options exercised | 195,456 | $ 220 | 195,236 |  |  | 
| Stock options exercised, share |  | 219,999 |  |  |  | 
| Share-based compensation | 310,002 | $ 19 | 309,983 |  |  | 
| Share based compensation, share |  | 18,965 |  |  |  | 
| Ending balance, amount at Mar. 31, 2022 | (16,836,876) | $ 23,763 | 16,885,816 | (33,557,313) | (189,142) | 
| Ending balance, shares at Mar. 31, 2022 |  | 23,762,933 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2021 | (17,286,423) | $ 23,524 | 16,380,597 | (33,543,351) | (147,193) | 
| Beginning balance, shares at Dec. 31, 2021 |  | 23,523,969 |  |  |  | 
| Net income (loss) | (1,828,293) |  |  |  |  | 
| Foreign currency translation gain (loss) | (233,405) |  |  |  |  | 
| Ending balance, amount at Sep. 30, 2022 | (18,505,952) | $ 24,327 | 17,221,963 | (35,371,644) | (380,598) | 
| Ending balance, shares at Sep. 30, 2022 |  | 24,327,426 |  |  |  | 
| Beginning balance, amount at Mar. 31, 2022 | (16,836,876) | $ 23,763 | 16,885,816 | (33,557,313) | (189,142) | 
| Beginning balance, shares at Mar. 31, 2022 |  | 23,762,933 |  |  |  | 
| Net income (loss) | (1,115,641) |  |  | (1,115,641) |  | 
| Foreign currency translation gain (loss) | (113,585) |  |  |  | (113,585) | 
| Surrender of options | (1,280,133) | $ (366) | (1,279,767) |  |  | 
| Surrender of options, shares |  | (365,751) |  |  |  | 
| Stock options exercised | 734,313 | $ 672 | 733,641 |  |  | 
| Stock options exercised, share |  | 671,665 |  |  |  | 
| Share-based compensation | 315,408 | $ 47 | 315,361 |  |  | 
| Share based compensation, share |  | 47,236 |  |  |  | 
| Ending balance, amount at Jun. 30, 2022 | (18,296,514) | $ 24,116 | 16,655,051 | (34,672,954) | (302,727) | 
| Ending balance, shares at Jun. 30, 2022 |  | 24,116,083 |  |  |  | 
| Net income (loss) | (698,690) |  |  | (698,690) |  | 
| Foreign currency translation gain (loss) | (77,871) |  |  |  | (77,871) | 
| Stock options exercised | 237,983 | $ 182 | 237,801 |  |  | 
| Stock options exercised, share |  | 182,168 |  |  |  | 
| Share-based compensation | 329,140 | $ 29 | 329,111 |  |  | 
| Share based compensation, share |  | 29,175 |  |  |  | 
| Ending balance, amount at Sep. 30, 2022 | (18,505,952) | $ 24,327 | 17,221,963 | (35,371,644) | (380,598) | 
| Ending balance, shares at Sep. 30, 2022 |  | 24,327,426 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2022 | (17,885,387) | $ 24,411 | 17,575,396 | (35,316,540) | (168,654) | 
| Beginning balance, shares at Dec. 31, 2022 |  | 24,411,098 |  |  |  | 
| Net income (loss) | 110,694 |  |  | 110,694 |  | 
| Foreign currency translation gain (loss) | 16,637 |  |  |  | 16,637 | 
| Share-based compensation | 244,923 | $ 28 | 244,895 |  |  | 
| Share based compensation, share |  | 27,392 |  |  |  | 
| Ending balance, amount at Mar. 31, 2023 | (17,513,133) | $ 24,439 | 17,820,291 | (35,205,846) | (152,017) | 
| Ending balance, shares at Mar. 31, 2023 |  | 24,438,490 |  |  |  | 
| Beginning balance, amount at Dec. 31, 2022 | (17,885,387) | $ 24,411 | 17,575,396 | (35,316,540) | (168,654) | 
| Beginning balance, shares at Dec. 31, 2022 |  | 24,411,098 |  |  |  | 
| Net income (loss) | (987,695) |  |  |  |  | 
| Foreign currency translation gain (loss) | 12,850 |  |  |  |  | 
| Ending balance, amount at Sep. 30, 2023 | (18,076,703) | $ 24,522 | 18,358,814 | (36,304,235) | (155,804) | 
| Ending balance, shares at Sep. 30, 2023 |  | 24,522,197 |  |  |  | 
| Beginning balance, amount at Mar. 31, 2023 | (17,513,133) | $ 24,439 | 17,820,291 | (35,205,846) | (152,017) | 
| Beginning balance, shares at Mar. 31, 2023 |  | 24,438,490 |  |  |  | 
| Net income (loss) | 356,769 |  |  | 356,769 |  | 
| Foreign currency translation gain (loss) | (25,280) |  |  |  | (25,280) | 
| Share-based compensation | 245,135 | $ 28 | 245,107 |  |  | 
| Share based compensation, share |  | 28,391 |  |  |  | 
| Ending balance, amount at Jun. 30, 2023 | (16,936,509) | $ 24,467 | 18,065,398 | (34,849,077) | (177,297) | 
| Ending balance, shares at Jun. 30, 2023 |  | 24,466,881 |  |  |  | 
| Net income (loss) | (1,455,158) |  |  | (1,455,158) |  | 
| Foreign currency translation gain (loss) | 21,493 |  |  |  | 21,493 | 
| Stock options exercised | 67,500 | $ 30 | 67,470 |  |  | 
| Stock options exercised, share |  | 30,000 |  |  |  | 
| Share-based compensation | 225,971 | $ 25 | 225,946 |  |  | 
| Share based compensation, share |  | 25,316 |  |  |  | 
| Ending balance, amount at Sep. 30, 2023 | $ (18,076,703) | $ 24,522 | $ 18,358,814 | $ (36,304,235) | $ (155,804) | 
| Ending balance, shares at Sep. 30, 2023 |  | 24,522,197 |  |  |  |