From what I can seepaymentRequestWithCardForm opens a native form (STPAddCardViewController on ios) which then sends back the same token you’d get from createTokenWithCardAsync . So to answer your question, the module doesn’t present a form in createTokenWithCardAsync because then it’d be doing the same as paymentRequestWithCardFormAsync .