E o Sdk sim, vou explicar como funciona o meu sistema, mas eu uso pagseguro, deve ser parecido.
1 - No painel administrativo do meu sistema, eu crio um produto (ex: envio de whatsapp pelo erp). Em seguida, crio para esse produto alguns planos. Ao criar esse plano, envio uma request no pagseguro pra criar lá tbm.
2 - O cliente entra no site e cadastra os dados de login. Já dentro do painel dele, ele pode cadastrar várias empresas, cada uma será um assinante no pagseguro. Já envio a request aí tbm.
3 - O cliente acessa a listagem de produtos disponíveis, entra em um e escolhe um plano. Ao clicar em um plano, será levado a uma página para adicionar os dados do cartão.
4 - adiciona os dados do cartão e clica em contratar. Aí ocorre duas coisas: atualizo no pagseguro o cartão do cliente e solicito a criação da assinatura (vincula o cliente, o cartão e um produto).
5 - Trato as responses dessas requests e trato tbm o webhook que vem da assinatura (verifico o status do pagamento).
Obs: Toda vez que for contratar um plano atualizo as informações do cartão, pois, os dados não ficam salvos no banco para escolher qual cartão usar por questão de segurança.
Logo, com empresas diferentes, possibilito usar tanto o mesmo cartão quanto cartões diferentes. Foi a solução que encontrei para as dificuldades impostas pelo gateway de pagamento que utilizei.