Processing credit cards in Canada can be a nightmare compared to options for US companies. The fees are much higher, account setup can be complicated, the APIs are brutal, and there are crazy limitations like Canadian companies not being able to process AmEx in US dollars.
The best option for Canadian based companies is to incorporate a child LLC in the US to use US based payment providers. Between Stripe, Braintree, and FeeFighters you'll be very happy.
You'll definitely want to check with tax experts before doing this.