Vimeo OTT Redeemer Documentation
Overview
Vimeo OTT Redeemer connects a WordPress website to the Vimeo OTT / VHX API and allows users to redeem access to configured Vimeo OTT products through WordPress.
The plugin is designed for promotional access, member benefits, complimentary subscriptions, event access, testing programs, and other workflows where access to a Vimeo OTT product should be provisioned from an existing WordPress site.
Administrators can create individual redemption offers, control when those offers are available, customize the user-facing messaging, review redemption history, inspect local entitlement records, and diagnose Vimeo OTT customer records directly from WordPress.
Current Version
1.1.15
Requirements
- WordPress 6.4 or later
- PHP 8.0 or later
- An active Vimeo OTT account
- Vimeo OTT API credentials with sufficient access to manage customers
- HTTPS-enabled WordPress site
Installation
Install from ZIP
- Download the latest
vimeo-ott-redeemerrelease ZIP. - In WordPress, go to Plugins → Add New Plugin.
- Select Upload Plugin.
- Upload the Vimeo OTT Redeemer ZIP file.
- Click Install Now.
- Activate Vimeo OTT Redeemer.
The plugin installs into:
/wp-content/plugins/vimeo-ott-redeemer/
Do not rename the internal plugin folder.
Initial Setup
After activation, open the Vimeo OTT Redeemer administration area.
The initial configuration consists of four primary areas:
- General / Redemption Settings
- Default Messaging & Language
- Profile Defaults
- Debugging
Each section has its own save action so changes to one area do not overwrite settings in another.
Connecting Vimeo OTT
Vimeo OTT Redeemer requires a Vimeo OTT API key in order to create customers, look up existing customers, and provision product access.
Important
Vimeo OTT uses a separate API from the standard Vimeo developer API.
You need a Vimeo OTT API Key.
You do not need a standard Vimeo.com personal access token.
The Vimeo OTT API used by this plugin is:
https://api.vhx.tv
Generate a Vimeo OTT API Key
Follow these steps inside your Vimeo OTT administration account.
Step 1 — Sign In to Vimeo OTT
Sign in to the Vimeo OTT Admin Dashboard for the Vimeo OTT site you want to connect to WordPress.
Make sure you are working inside the correct Vimeo OTT site if your organization manages more than one.
Step 2 — Open Platforms
From the Vimeo OTT administration navigation, go to:
Manage → Platforms
Step 3 — Find the API Key Section
Scroll toward the bottom of the Platforms page.
Locate the area for API access or private API keys.
Step 4 — Create a New Key
Click Create Key.
Step 5 — Name the Key
Enter a descriptive name so you can identify what the API key is used for later.
Examples:
WordPress Vimeo OTT Redeemer
or:
BSM Strategy - Vimeo OTT Redeemer
or:
Website Redemption Integration
Using a descriptive name makes it easier to distinguish the integration from any other API connections your organization may create.
Step 6 — Create the API Key
Click Create Key.
Vimeo OTT will generate a private API key.
Step 7 — Copy the API Key
Click Copy Key and save the key in a secure location.
The private API key should be treated like a password.
You may not be able to retrieve the full private key again after leaving the page, so make sure you copy it before continuing.
Add the API Key to WordPress
After generating the Vimeo OTT API key:
- Return to your WordPress administration dashboard.
- Open Vimeo OTT Redeemer → Settings.
- Locate the Vimeo OTT API Key field.
- Paste your Vimeo OTT API key into the field.
- Click Save Settings.
- Run the plugin's Connection Test.
A successful connection confirms that WordPress can communicate with the Vimeo OTT API.
API Connection Test
The Connection Test verifies that:
- WordPress can reach Vimeo OTT
- The API key is accepted
- The Vimeo OTT API is responding
- The server can make outbound HTTPS requests
A successful connection does not necessarily confirm that every individual Vimeo OTT product or customer configuration is valid, but it confirms the base integration is functioning.
API Key Security
Treat the Vimeo OTT API key as a sensitive credential.
Do not:
- Place it in a shortcode
- Expose it in JavaScript
- Include it in support tickets
- Publish it in screenshots
- Include it in public documentation
- Commit it to a public Git repository
- Email it unnecessarily
Vimeo OTT Redeemer performs API requests from the WordPress server so the API key does not need to be exposed to website visitors.
The plugin also attempts to redact sensitive credentials from diagnostic and debug output.
Passwords, authorization headers, WordPress nonces, cookies, and complete API keys should not appear in shared diagnostic information.
Vimeo OTT Site Ownership and API Keys
Vimeo OTT API keys are associated with the Vimeo OTT site and its administrative ownership.
If ownership or account administration changes, an existing API credential may need to be regenerated.
If Vimeo OTT Redeemer suddenly begins returning authentication failures after an account or ownership change, generating a new Vimeo OTT API key should be one of the first troubleshooting steps.
If You Lose the API Key
If you lose the private API key and can no longer retrieve it from your stored credentials, create a new API key in Vimeo OTT and update the key stored in WordPress.
After entering the new key, run the Connection Test again.
Do not continue using an API key that you believe may have been exposed or compromised.
Do Not Use a Standard Vimeo API Token
Vimeo provides multiple API systems. They are not interchangeable.
Vimeo OTT / VHX API
Used by Vimeo OTT Redeemer.
API endpoint:
https://api.vhx.tv
Credential type:
Vimeo OTT API Key
Standard Vimeo API
The standard Vimeo API is used for Vimeo.com developer applications, video uploads, metadata, playback information, and other standard Vimeo functionality.
This system typically uses:
- Vimeo developer applications
- Personal access tokens
- OAuth credentials
A standard Vimeo personal access token should not be entered into the Vimeo OTT Redeemer API Key field.
Creating an Offer
Go to the Vimeo OTT Redeemer Offers area and select Add New Offer.
Each offer represents a specific redemption opportunity.
An offer can define:
- Offer title
- Offer slug
- Vimeo OTT product
- Access duration
- Start date
- End date
- Approval behavior
- User login requirements
- Password handling
- User-facing messaging
- Profile messaging
- Offer status
Offer Availability
Each offer has a start and end date.
An offer may appear as:
- Scheduled — start time has not yet arrived
- Active — currently available for redemption
- Expired — end date has passed
- Inactive — manually disabled
The availability rules are enforced on both the displayed form and the server-side redemption request.
Changing the HTML or manually submitting a request does not bypass the offer's configured availability.
Offer Duration
Offers can provide access for a defined period.
Examples include:
- 2 days
- 30 days
- 3 months
- 1 year
Current releases use Vimeo OTT's supported customer provisioning duration format where applicable.
Examples of the values sent to Vimeo OTT include:
2-days
5-weeks
3-months
1-years
Important
Vimeo OTT has advised that expires_in should not be used as a renewable entitlement-management mechanism.
The current plugin release retains its existing expiration behavior for compatibility.
A future release is intended to provide additional optional expiration-management methods, including WordPress-managed entitlement expiration and Vimeo product revocation.
Vimeo OTT Product
Each offer must be associated with a Vimeo OTT product.
The plugin normalizes products to the Vimeo API product URL format:
https://api.vhx.tv/products/PRODUCT_ID
Example:
https://api.vhx.tv/products/119144
The shortcode does not permit a visitor to substitute a different Vimeo product.
The product is determined by the server-side offer configuration.
Password Options
Offers can support different password workflows.
Vimeo Handles Password
No password is collected by the WordPress form where supported by the configured workflow.
User Chooses Password
The user enters the password that will be used when the Vimeo OTT customer is created.
The password is transmitted only as necessary to complete the provisioning request and is not intentionally stored by Vimeo OTT Redeemer.
Confirm WordPress Password
For logged-in WordPress users, an offer can require the user to confirm their existing WordPress password.
The plugin verifies it using WordPress authentication.
The password is not stored by Vimeo OTT Redeemer.
User Information
For logged-in users, the plugin can use information from the WordPress profile, including:
- First name
- Last name
- Email address
Depending on the offer configuration, these values can be prefilled and locked to the WordPress account.
This prevents a logged-in user from redeeming an offer for an unrelated email address when the offer is intended to be tied to the WordPress account.
Existing Vimeo OTT Customers
Before attempting to create a new Vimeo OTT customer, the plugin searches for an existing customer using the submitted email address.
The lookup is designed to support addresses containing email subaddressing characters such as:
[email protected]
If Vimeo's direct email-filter response indicates that a matching customer exists but does not return the customer record, Vimeo OTT Redeemer performs an additional exact-match search.
This helps avoid creating unnecessary duplicate customers.
Redemption Form Shortcode
The standard shortcode is:
[vimeo_ott_offer offer="your-offer-slug"]
Example:
[vimeo_ott_offer offer="90-day-free"]
Add the shortcode to any WordPress page, post, or compatible page-builder module.
Supported Shortcode Presentation Options
The shortcode can accept selected presentation options.
Example:
[vimeo_ott_offer
offer="90-day-free"
button_text="Redeem Access"
show_dates="yes"
show_reference="no"
css_class="special-redemption"
]
Supported presentation attributes include:
offerbutton_textshow_datesshow_referencecss_class
Security Note
Shortcode attributes cannot override security-sensitive offer configuration.
For example, a shortcode cannot:
- Change the Vimeo product
- Bypass login requirements
- Bypass offer availability
- Weaken password requirements
- Override redemption eligibility rules
Those settings remain controlled by the offer stored in WordPress.
Redemption Process
When a visitor submits a redemption form, the plugin performs several checks before calling Vimeo OTT.
- Validate the offer.
- Validate the offer availability.
- Validate the WordPress user if required.
- Validate form data.
- Check for a recent or existing redemption.
- Search Vimeo OTT for the customer.
- Determine the customer's current state.
- Create or process Vimeo OTT access as appropriate.
- Create or update the local entitlement.
- Write audit records.
- Return the appropriate user-facing result.
AJAX Redemption
JavaScript-enabled browsers use AJAX to process the redemption without reloading the entire page.
During processing:
- The redemption button is disabled
- The button displays a processing state
- Validation errors appear inline
- Server errors can be displayed above the form
- Successful terminal states replace the redemption interface
A non-JavaScript server-side fallback is also retained.
Both methods use the same underlying PHP redemption engine.
Duplicate Redemption Protection
The plugin protects against accidental double-submission and duplicate active redemptions.
A newly submitted request is temporarily protected against an immediate duplicate request.
Requests that previously failed may be attempted again.
If a successful entitlement has expired, a new legitimate redemption can be permitted rather than permanently blocking the user because of the historical request.
Redemption Results
Depending on the transaction, a user may receive one of several states.
Success
The Vimeo OTT access was successfully provisioned.
Successful transactions retain an internal reference number for administration and auditing, although the reference does not need to appear to the user.
Existing
An applicable existing Vimeo OTT customer or access condition was detected.
Pending
The request requires additional processing or review.
Scheduled
The offer is not yet available.
Expired
The configured redemption window has ended.
Failure
The request could not be completed.
Where useful for customer support, operational failures can display a reference number.
Messaging and Language
The plugin includes configurable user-facing messaging.
Messaging uses the following priority:
Offer-specific message
↓
System default
↓
Built-in fallback
This allows most sites to establish global wording while customizing individual campaigns when necessary.
Available messaging includes content for:
- Redemption instructions
- Password label
- Confirmation text
- Success
- Existing customer
- Pending
- Failure
- Scheduled
- Expired
The frontend intentionally does not require Vimeo branding in the user-facing language.
For example, the default password label is:
Choose a password
rather than:
Choose Vimeo password
Profile Link
Offers can optionally include a configurable profile message or link.
This is useful when a logged-in user's first name, last name, or email address needs to be changed before redeeming an offer.
The text and destination can be configured by the administrator.
Requests and Audit Records
Vimeo OTT Redeemer maintains internal records to support troubleshooting and reporting.
A request record can include:
- Internal reference
- User
- Email association
- Offer
- Status
- Reason
- Vimeo customer ID
- Product information
- Timestamps
Audit records allow multiple events to be stored against the same redemption reference.
This provides a chronological record of important events during the transaction rather than limiting the reference to a single log row.
Entitlement Records
The plugin maintains a local entitlement record for successful access.
An entitlement can track information such as:
- WordPress user
- Offer
- Vimeo customer ID
- Status
- Start date
- Expected expiration date
- Latest redemption reference
The local expected expiration is useful for administration and diagnostics.
It should not be interpreted as proof that Vimeo OTT has already removed access at the exact recorded timestamp.
Customer Diagnostic Tools
Administrators can use the built-in Vimeo OTT Diagnostic Tools to inspect a customer without modifying the account.
Customer lookup can be performed using:
- Email address
- Vimeo customer ID
A product may also be supplied to inspect product-specific information.
Diagnostic results can include:
- Customer ID
- Name
- Platform
- Creation date
- Last update
- Vimeo plan
- Registration state
- Subscription state
- Recent Vimeo event data
- Local request history
- Local entitlement history
- Product access information
These tools are read-only.
They do not intentionally alter the Vimeo customer's subscription or product access.
Product Access Diagnostics
A successful HTTP response from Vimeo does not, by itself, prove that a customer has access to a particular product.
The diagnostic tools inspect the returned customer/product information and attempt to determine whether the requested product actually appears to be attached or enabled.
The diagnostic interface therefore distinguishes between:
API request succeeded
and:
Product appears attached
This distinction is useful when troubleshooting an existing Vimeo customer.
Debug Mode
Debug Mode provides additional troubleshooting information.
When enabled, the plugin can record recent diagnostic checkpoints related to redemption processing.
Examples include:
- Provisioning dispatch
- API initialization
- Processing start
- Customer lookup attempt
- Customer lookup result
- API response status
Debug records are limited and temporary rather than being intended as permanent application logs.
Administrators can also use Clear Debug Data to remove the stored debug buffer.
Browser Console Diagnostics
When Debug Mode is enabled, authorized administrative sessions can receive additional browser-console diagnostics.
Sensitive information is intentionally redacted.
The console must not expose:
- API keys
- Passwords
- Authorization headers
- WordPress nonces
- Cookies
Customer email addresses remain protected in shared debug output.
Administrator-only customer diagnostic views may display the complete email address when necessary to verify customer matching.
Database Repair
The plugin includes a database repair utility for situations where an earlier plugin version or interrupted upgrade left a required table, column, or index in an inconsistent state.
Use Check & Repair Plugin Database when instructed during troubleshooting.
The repair process is designed to preserve existing offers, requests, audit records, and entitlements.
It should not intentionally drop and recreate the plugin's data tables.
Plugin Updates
Beginning with version 1.1.14, Vimeo OTT Redeemer supports the BSM Strategy plugin update service.
The plugin checks:
https://bsmstrategy.com/wp-json/bsm-updates/plugin/vimeo-ott-redeemer
When a newer published release is available, WordPress can display the normal plugin update notification.
Administrators can then use the standard WordPress plugin update workflow.
The plugin identifies BSM Strategy as its authoritative update source rather than WordPress.org.
Update metadata is cached temporarily to reduce unnecessary requests to BSMStrategy.com.
A temporary failure of the BSM Strategy update service does not prevent Vimeo OTT redemption processing.
Troubleshooting
Vimeo Connection Test Fails
Check:
- The API key is correct
- You are using a Vimeo OTT API key, not a standard Vimeo token
- Outbound HTTPS connections are permitted
api.vhx.tvis reachable from the WordPress server- The Vimeo OTT account is active
- The API credential has sufficient access
If the API key was recently replaced, save the new key and run the Connection Test again.
Customer Exists but Plugin Cannot Find Them
Use Customer Diagnostic Tools.
Search by email first. If necessary, search by Vimeo customer ID.
Email aliases containing + are supported by the plugin's encoded customer lookup.
Offer Does Not Display
Verify:
- The offer is active
- The current date is between the offer start and end dates
- The shortcode contains the correct offer slug
- Required login conditions are satisfied
User Cannot Redeem Again
Review:
- Most recent request status
- Local entitlement
- Expected expiration date
- Vimeo customer record
An active entitlement may correctly prevent another redemption.
Failed requests should not permanently prevent a legitimate retry.
Redemption Fails With No Useful Information
Temporarily enable Debug Mode, reproduce the problem, and review:
- Recent Debug Entries
- Audit history
- Customer Diagnostic Tools
Disable or clear debug information after troubleshooting when it is no longer needed.
Security Considerations
Vimeo OTT Redeemer uses standard WordPress security mechanisms, including:
- WordPress capabilities
- Nonces
- Input sanitization
- Output escaping
- Prepared database operations
- WordPress HTTP API
- HTTPS Vimeo API requests
- Password verification through WordPress
- Server-side offer enforcement
- Duplicate submission protection
- API credential redaction
- Sensitive debug-data filtering
No web application should be described as completely immune to security vulnerabilities.
Keep WordPress, PHP, Vimeo OTT Redeemer, your theme, and all other plugins up to date.
Uninstalling or Deactivating
Deactivating the plugin stops its WordPress functionality but does not automatically remove customers or product access already created in Vimeo OTT.
Administrators should review Vimeo OTT access before permanently removing a production installation.
Do not assume that deleting the WordPress plugin will revoke customer access in Vimeo OTT.
Support
Before requesting support, collect:
- Vimeo OTT Redeemer version
- WordPress version
- PHP version
- Offer name
- Approximate redemption time
- Internal reference number, if available
- Relevant diagnostic output
Never send passwords or a complete Vimeo OTT API key in a support request.
Developer: BSM Strategy
Plugin: Vimeo OTT Redeemer
Current Version: 1.1.14
