Stripe
Stripe payment gateway integration supporting credit cards, digital wallets, 3DS authentication, bank transfers, and buy-now-pay-later options for comprehensive payment processing.
Supported Functionality
| Feature | Supported |
|---|---|
| Authorization | ✅ |
| Capture | ✅ |
| Refund | ✅ |
| Void | ✅ |
| Card Tokenization | ✅ |
| Dynamic Merchant Descriptors | ❌ |
| Bank Transfer | ✅ |
| 3D Secure | ✅ Gateway-managed |
| $0 Transactions | ✅ |
Setup
To connect a Merchant using the Stripe Gateway,
- First add Merchant
- Select Stripe as the Gateway
- Add Gateway Details as outlined below
| Gateway Details | Description |
|---|---|
| Merchant Payment Methods* | The types of payment methods this merchant accepts — credit card and digital wallets. |
| Merchant Card Types* | Card types to be accepted on this Merchant |
| Merchant Default Currency* | Default currency that will be used, if currency is not specified |
| Merchant Currencies* | All currencies accepted on this merchant |
| Bypass $0 Transaction Authorizations | Check this box to bypass Stripe entirely for $0 credit card transactions — the customer and payment token will not be stored. When unchecked, Stripe will validate and store the customer and payment token for future use without attempting a charge. Other payment methods (Apple Pay, Google Pay, etc.) will always validate and store the customer and payment token without attempting a charge. This setting only applies to initial transactions — $0 renewals will always bypass the gateway. Learn more about $0.00 transaction handling. |
- Once you hit Submit, you will be redirected to Stripe to log into your account and grant Vrio permission to access it. When you are returned to Vrio the merchant is ready, and one further setting becomes available.
| Gateway Details | Description |
|---|---|
| Decline Status: Requires Action | In some cases Stripe will return the status of requires_action. This typically is related to 3DS configured in Stripe or if you are using a Bank Transfer, Klarna or Afterpay. Our API will return a response_code=101 in these cases. Click here for more information on how to handle this response from Stripe. Check this box if you would like Stripe to decline the charge when the status returned is requires_action. Note: For renewal transactions (merchant-initiated / MIT), Vrio will automatically decline on requires_action regardless of this setting, since there is no customer present to complete the authentication. |
*Required
Supported Payment Methods
Credit Card
Apple Pay
Google Pay
After Pay
Klarna
Stripe Bank Transfer
Payment Token (Card, Link, Amazon Pay)
Card Tokenization
Charges made with card data ask Stripe to save the card. Vrio stores the returned customer and payment method and reuses them for every renewal.
Dynamic Merchant Descriptors
Vrio does not send a descriptor to Stripe with the charge, so the customer's statement shows whatever is configured on your Stripe account.
3D Secure
Stripe authenticates the cardholder itself and returns a 101 when further action is required. Authentication values generated with a third party provider are not sent to Stripe. See Handling 101 Response Codes.
Common Errors
Vrio's Stripe integration always uses explicit payment_method_types (for example ['card']) when creating Payment Intents. It does not use automatic_payment_methods.
Your frontend Stripe.js or Elements integration must match, by passing paymentMethodTypes: ['card'] when initializing stripe.elements(). The server-side API uses snake_case and Stripe.js uses camelCase, but both refer to the same setting.
If the frontend collects payment details with automatic_payment_methods while Vrio confirms the Payment Intent with explicit payment_method_types, Stripe rejects the request:
"Payment details were collected through Stripe Elements using automatic payment methods and cannot be confirmed through the API configured with payment_method_types or allowed_payment_method_types."
Update the stripe.elements() initialization to use paymentMethodTypes: ['card']. See Payment Tokens and Apple Pay / Google Pay for working examples.
Testing
Note : Placing test orders with a Stripe sandbox account or using Stripe test cards will not automatically set the order as a test in Vrio. Be sure to flag the order as a test using the is_test flag after the order is processed. For more details on placing test orders, click here.
To create a sandbox Stripe merchant in Vrio, first create your live merchant. Then open that merchant, click Options and choose Create Sandbox. Transactions run through it land in your live account's Test Mode section.

For Stripe test cards, check here.
Updated 2 days ago
