Overview
Vaultera Switch enables PMSs to:- Embed a secure, customizable unified checkout form within the PMS IBE.
- Generate payment request links to be sent to guests via email.
- Route payments across multiple payment processors intelligently.
- Maintain PCI compliance when combined with Vaultera PCI (optional, see appendix).
Prerequisites
Before you begin, ensure that you:- Have a Vaultera Switch API key (contact us to provision one per environment).
- Know your PMS client ID and any merchant configuration requirements.
- Understand how your IBE or frontend is structured (React, Vue, plain JS, etc.).
Integration Options
You can integrate Vaultera Switch into your system using one or both of the following:- Unified Checkout Form (for IBE payments)
- Payment Request Links (for email-based guest payments)
- Via Vaultera PCI
Unified Checkout Form
The Unified Checkout Form is a secure, PCI compliant customizable checkout form that can be embedded within the PMS IBE. It allows guests to complete their payments directly within the PMS, providing a seamless and secure payment experience.Payment Request Links
Payment Request Links are secure links that can be sent to guests via email. They allow guests to complete their payments directly from their email, providing a convenient and secure payment experience.PCI Compliance
Vaultera PCI is an optional service that can be combined with Vaultera Switch to ensure PCI compliance for your PMS system.Integrating the Unified Checkout Form
Step 1: Include the Vaultera JS SDK
Step 2: Create a Payment Intent on your backend
Your backend must create a Payment Intent by calling Vaultera Switch: Make sure to include the following headers: Endpoint:{BASE_URL}/v1/payment_intents
Method: POST
Step 3: Render the Checkout Form
Load the SDK using the cdn endpoint and prepare the form<SERVER_BACKEND_URL> use your server backend URL.
In place of <PMS_URL> use your PMS URL, where the guest will be redirected after the payment is complete.
Creating Payment Request Links
These are typically used when hotels email payment links to guests.Step 1: Create a Payment Intent with request_link: true
POST /payments Authorization: Bearer<API_KEY>
Content-Type: application/json
Step 2: Extract the Payment URL
Response:Webhooks
Implement webhook handling for important events: payment_intent.succeeded payment_intent.failed payment_intent.cancelled Example webhook payload:Security & Compliance
Vaultera Switch is PCI DSS Level 1 compliant. Tokenization, card vaulting, and proxying are available through Vaultera PCI for handling OTA-sourced cards via Channel Managers.Support
Need help? Contact your integration manager or reach out to [email protected].Appendix: Optional Vaultera PCI Integration
In some scenarios, hotels receive guest credit card details through Channel Managers that provide OTA (Online Travel Agency) reservations — for example, from platforms like Booking.com or Expedia. To stay PCI compliant, PMS systems should not store or process these raw card details directly. Vaultera PCI enables secure handling of these OTA-provided cards by:- Tokenizing the card details upon receipt via the Channel Manager.
- Storing the tokens in Vaultera PCI’s secure vault.
- Proxying charge requests through Vaultera PCI to Vaultera Switch using those tokens — avoiding direct handling of sensitive data by the PMS or hotel systems. This approach allows hotels to manually charge OTA cards when needed (e.g., for deposits, no-shows, or post-checkout charges) while maintaining full PCI compliance.
- Accept and tokenize credit cards received via Channel Managers.
- Store these securely in Vaultera PCI’s vault.
- Later proxy charge requests to Vaultera Switch without storing sensitive data.
Example: Detokenize & Charge via Vaultera PCI
This example shows how to detokenize a card token and send a charge request to Vaultera Switch using Vaultera PCI’s send action:Step 1: Prepare the HTTP Request
POSThttps://pci.vaultera.co/api/v1/cards/{CARD_TOKEN}/send?api_key={VAULTERA_PCI_API_KEY}&method=post&url=https%3A%2F%api.test.switch.vaultera.co%2Fpayments
🔐 Replace with your PCI token and with your API key of Vaultera PCI ( not the api key of Vaultera Switch). The url must be URL-encoded.