I've worked on way, way too many credit card apps that charged money for other people (two invoicing platforms, one ticketing site, one photo social network) and the myriad of issues with credit cards and fraud and other problems have led me to the conclusion that unless you have a really, really good reason to do otherwise it is better to either:
1. Outsource this to a better API that takes a percent cut, but handles all the edge-cases like refunds and GDPR compliance for you.
2. If that doesn't work, and you're stuck with a shitty SDK, it's easier to just use a better supported language. (Even a general purpose library like Active Merchant.) It's trivial to create a shim for this and the separation is really clean. Why bother with Go if it's hard? For now just hack it together.