В приложении должна быть своя форма, без редиректов на форму банка, для ввода реквизитов карты: номер, цвв, дата
Нельзя из соображений безопасности, чтобы вы знали реквизиты карт.
Именно поэтому банк и отправляет к себе.
Напрямую тоже можно, но для этого требуется пройти сертификацию по PCI DSS.
Что то от 10 000 долларов и года времени на все процедуры.
Если вы не хотите PCI DSS, но как-то это реализуете технически в обход предлагаемого банком варианта - вас ожидает и бан (причем во всех банках сразу) и уголовное дело за мошенничество с банковскими картами.
Впрочем, может и повезет и не заметят. ;)
но как сделать через свою форму+api не ясно?!
Или создать свою платежную систему и заключить договор с Visa/MasterCard (что то от миллиона долларов).
Или получить сертификацию PCI DSS. Эта сертификация подразумевает определенные требования к вашим серверам, в частности запрет на сохранение номеров карт (и это будут проверять), кучу логирования того, что происходит на сервере и т.п.