Changelog
API and product changes, additions, and deprecations over time.
Every dated, breaking, and additive change to the VINR API, SDKs, and products. Use this page to track what shipped, what's deprecated, and when removals land — so an integration that works today keeps working after you upgrade.
The VINR API is versioned by date. Your account is pinned to the version you onboarded with; nothing on this page changes your integration's behavior until you explicitly upgrade. See Versioning policy below.
Subscribe (RSS / webhook)Ask
Stay ahead of changes without polling this page.
Subscribe your reader to the feed:
curl https://api.vinr.com/v1/changelog.rssEntries are published the moment a change goes live in production, tagged additive, fix, or breaking.
Register an endpoint for the changelog.published event and receive a payload for every entry — useful for posting to an internal Slack channel.
import { Vinr } from '@vinr/sdk';
const vinr = new Vinr({ secretKey: process.env.VINR_SECRET_KEY });
await vinr.webhookEndpoints.create({
url: 'https://yoursite.com/hooks/vinr-changelog',
enabledEvents: ['changelog.published'],
});The event data carries version, tag, title, and a url back to the entry. Verify it like any other webhook with vinr.webhooks.verify(payload, signature).
Versioning policyAsk
VINR uses date-based API versions (for example 2026-04-01). Your account is pinned at onboarding and stays there until you upgrade.
- Additive changes — new endpoints, new optional request fields, new response fields, and new event types — ship continuously to all versions and are never considered breaking. Write parsers that ignore unknown fields.
- Breaking changes — removing or renaming a field, changing a type, tightening validation, or altering default behavior — only ever appear behind a new dated version.
- Upgrading is explicit. Set the version per request with the
Vinr-Versionheader, or set the account default in the Dashboard.
curl https://api.vinr.com/v1/payments \
-H "X-Api-Key: $VINR_SECRET_KEY" \
-H "Vinr-Version: 2026-04-01"SDK releases follow semantic versioning independently of the API version. A new major SDK (for example @vinr/sdk v3) may change method signatures even when targeting the same API date. Check the SDK release notes before bumping a major.
Deprecation policyAsk
When a field or endpoint is deprecated we commit to a minimum 12-month support window before removal.
Announced
The change appears here tagged deprecated, and deprecated fields are marked in the API reference. Responses include a Vinr-Deprecation header naming the field and its sunset date.
Supported
The old behavior keeps working for at least 12 months. We email the technical contact on the account 90 and 30 days before sunset.
Removed
After the window, the field or endpoint is removed in a new dated version. Accounts pinned to older versions are unaffected until they upgrade.
Recent changesAsk
2026-06-01 — additive
Major documentation expansion: VINR payments docs reach Stripe / Adyen / Viva parity across five new areas.
- In-person payments — full Terminal API documentation covering cloud and local modes; terminal hardware guide (Nexgo N92, N86Pro, CT20, CT20P; Ciontek CM30); Tap to Pay on iOS and Android; in-person features (tipping, DCC, cashback, MOTO, offline, installments, gift cards); terminal fleet management and remote actions. See In-person payments.
- Unified commerce — cross-channel shopper recognition and shared payment tokens; Click & Collect (BOPIS); Buy Online Return In Store (BORIS); Endless Aisle; Pay by Link in-store; MOTO; cross-channel loyalty; digital receipts; shopper insights. See Unified commerce.
- Plugins — pre-built payment plugins for WooCommerce, Adobe Commerce (Magento 2), and Salesforce Commerce Cloud (LINK cartridge). See Plugins.
- Deeper online payments — new pages for tokenization, 3D Secure (native / redirect / data-only / standalone), authorization adjustment, reversal, surcharging, installments, partial authorization, partial payments, donations, and auto-rescue. Integration models overview (Checkout vs Elements vs API-only) and advanced flow guide added. Result codes reference added to Troubleshooting.
- API reference — new In-person API group: Terminals, Terminal Payments, Terminal Actions. New Tokens resource (network tokens, account updater). Payments API extended with
POST /v1/payments/{id}/adjustandPOST /v1/payments/{id}/reverse. - Task guides — three new how-to guides: Collect an in-person payment, Go omnichannel, Install the WooCommerce plugin.
2026-05-28 — additive
- Engagement: added
loyalty.points.expiringwebhook, fired 30 days before a points balance expires so you can prompt redemption. See Points expiry. - Billing:
subscriptions.createnow acceptstrialEndsAt(RFC 3339) as an alternative totrialDays.
2026-05-12 — fix
- Fixed a case where
invoice.paidcould fire twice for invoices settled by a saved card during a retry. Consumers that were already idempotent were unaffected; the duplicate is now suppressed at source. - Refund objects (
re_…) now always includepaymentIdeven for partial refunds created via the Dashboard.
2026-04-20 — additive
- Payments: new
payment.requires_actionevent surfaces 3DS step-ups initiated after creation. Pairs with the 3D Secure guide. - Added
mbu_usage-record listing with cursor pagination to support high-volume metered billing.
2026-04-01 — breaking (new version 2026-04-01)
The following changes apply only if you set Vinr-Version: 2026-04-01 or later. Older pinned accounts keep the previous behavior.
amountis now rejected when not an integer. Previously decimal strings were silently floored — all amounts must be integers in minor units (1000= EUR 10.00).payment.statusvaluependingwas split intorequires_actionandprocessing. Update any switch statements over status. See the payment lifecycle.- The legacy
customer.emailtop-level field on payment objects is removed; read it from the expandedcustomerobject instead.
2026-03-09 — deprecated
- The
vinr.charges.*namespace is deprecated in favor ofvinr.payments.*. Sunset date 2027-03-09. Method names map one-to-one; only the namespace changed.
Next stepsAsk
API reference
Field-level docs with deprecation markers.
Webhooks
Subscribe to changelog.published and other events.
Go-live checklist
Verify your version pin before launch.
Last updated on