Changelog

Recent updates, new features, and improvements to the RevKeen platform.

Stay up to date with everything we ship. Major releases are announced on our blog — this page covers the full history.


September 2026

  • created_via in payment-link metadata is now set only by RevKeen. It records where a link was created.
  • If you send it on POST /v2/payment-links or when updating a link, it is dropped without an error. The rest of your metadata is stored as before. See Checkout Links.

No available payment method now returns 503 instead of 500

  • POST /v2/checkout-sessions and POST /v2/cart-sessions/{id}/convert now return 503 with code: "NO_PAYMENT_METHODS_AVAILABLE" when you have no online payment method enabled and live for the checkout, or none that can collect its currency. They previously returned an undocumented 500.
  • No session is created and the cart stays open. Enable a payment method in Settings → Payments, then retry. Other errors, and successful responses, are unchanged.

Retired: order create, order pay and tax-rate endpoints

  • POST /v2/orders, POST /v2/orders/{id}/pay and the five /v2/tax-rates endpoints are removed. They were not part of the published API reference, returned an error on every request since they were introduced, and never created, paid for or stored anything.
  • Orders are created when a checkout is paid. Listing, retrieving, updating, cancelling and fulfilling orders is unchanged.
  • The orders_create MCP tool is removed with them. It was never exposed to connected apps.

A new subscription takes its price's currency (behaviour change)

  • POST /v2/subscriptions with no currency now creates the subscription in its price's currency. It previously stored USD whatever the price was priced in. If the price has no currency, your default currency (Settings → Regional) is used.
  • A currency that differs from the price's currency is now rejected with 400, because the subscription renews at the price's amount and RevKeen does not convert between currencies. Leave currency out, or send the price's own.
  • The published OpenAPI no longer shows USD as a default for this field.

Omitted currency uses your default currency (behaviour change)

  • A /v2 request that leaves out currency now uses your default currency, the one you choose in Settings → Regional. It previously used USD.
  • This covers creating checkout sessions, payment intents and products, ad-hoc price_data on payment links, and the external product sync endpoints. The published OpenAPI no longer shows USD as a default for these fields.
  • Sending currency explicitly is unchanged, and is still the clearest way to be certain which currency a record gets. On payment links, the link's currency comes from its products; the top-level currency field is not used.

September 2026 documentation update

Reviewed on 5 September: the guides now distinguish hosted checkout V13 from hosted invoice V6, document approved-origin checkout embedding, correct Cart SDK calls and usage deduplication behavior, and explain customer-scoped portal sessions. Start with checkout integration, usage integration, and portal integration.

Client releases have their own availability. Consult the release matrix before adopting candidate CLI or regenerated SDK methods. This documentation update does not declare an unpublished package or a beta integration generally available.

August 2026

Canonical API error contract (breaking for error-code branching)

  • 403 responses now carry type: authorization_error. They were previously typed authentication_error, so 401 and 403 can finally be told apart from the body alone.
  • Error codes are lower-snake-case throughout. IP_NOT_ALLOWED is now ip_not_allowed; the full 401 and 403 vocabularies are listed on Errors.
  • Every 401 now returns a WWW-Authenticate: Bearer realm="revkeen-api" challenge header.
  • Every 429 now returns a deterministic Retry-After in whole seconds, and X-RateLimit-Reset is a UNIX timestamp in seconds (it previously emitted milliseconds, contradicting the documented contract).
  • 403 scope denials no longer echo the granted scopes of the presented key.
  • The unkey_key_id field is removed from Cart API key status responses. id is the stable public identifier for a Cart key.

Checkout V13 multi-rail hosted checkout

  • Hosted checkout collects card, Direct Debit, and wallets (Apple Pay / Google Pay) when those rails are enabled for the merchant.
  • Invoice payers land on the hosted invoice page at /i/{token} instead of hopping to a generic checkout link.
  • The public embed bundle at https://releases.revkeen.com/embed/v1/checkout.js mounts Direct Debit capture and a cart drawer on merchant sites. Hosted checkout can also be mounted in an approved-origin iframe; see the embed guide for callback limitations.

Direct Debit day-2

  • Mandate request, Active-status gate, advance notice, collections, and indemnity handling are documented in the Direct Debit section, including emails and the customer, invoice, and checkout starting points.
  • Customer portal can list mandates, cancel, and run change-of-bank with OTP.

Apps Marketplace

  • Integrations install from Apps → Marketplace, not Settings.
  • Slack, Linear, HubSpot, PracticeHub, Quaderno, Terminal, Messaging, Cart, and Customer Intelligence are in the catalog. Xero and QuickBooks Online remain in development and are not installable.

Official SDK release channels

  • Current availability and source locations are on Official SDKs.
  • TypeScript: npm install @revkeen/sdk (npm · GitHub).
  • Go: canonical module github.com/revkeen/sdk-go; reviewed public tag pending (GitHub).
  • PHP: generated source is on GitHub; supported package channel coming soon.
  • There is no Python SDK.

July 2026

Direct Debit mandate journey

  • Hosted Bacs mandate requests with London & Zurich bureau submission.
  • Statuses: Awaiting setup, Submitted, Active, Failed, Suspended, Cancelled.
  • Do not collect until the mandate is Active.

Usage meters in the dashboard

  • Merchants manage meters under Products → Meters.
  • Customer-facing balances use GET /v2/usage/balance. A dedicated usage-analytics dashboard is not live.

June 2026

Stripe-class API keys — full key lifecycle

  • Scope enforcement — keys are scoped and scopes are enforced on every request; a read-only key can never move money.
  • IP allowlists — restrict a key to specific IPs/CIDR ranges; off-allowlist requests return 403 IP_NOT_ALLOWED.
  • Zero-downtime rolling — rotate a key with an overlap window (default 24h, up to 168h) so you can cut dependents over with no downtime.
  • Last-used + inventory — see when each key was last used and which keys have gone stale (90+ days).
  • Audit trail — every key event (created / rolled / revoked) is recorded with actor and timestamp.
  • Immediate, durable revocation — revoked keys stop authenticating right away and stay blocked through restarts.
  • See Authentication → Key lifecycle & security.

Linear and HubSpot via Nango

  • Merchants connect Linear (workflow issue create) and HubSpot (read-only CRM context) through Nango OAuth from the Apps Marketplace.

March 2026

AI Copilot — Proactive Intelligence & Processing-Cost Tools

  • MCP customer-v1 tools available as a governed, read-only billing surface
  • Proactive alerts for processing-cost changes, churn risk, and dunning opportunities
  • Wording updated 27 Sep 2026 (rule 21). Processing-cost figures cover recorded Direct Debit collection costs only; card processing fees are not recorded.
  • Natural language queries across invoices, subscriptions, and revenue data
  • Full-page chat interface in dashboard with visual output

Marketing Site Rework

  • 5 new product pages: Payments, Billing, Intelligence, Platform, Future
  • Interactive savings calculator on homepage and pricing page
  • PostHog page view and CTA tracking across all pages

Search & Indexing

  • Full-text search indexing for customers, invoices, and products
  • Background indexing via cron-worker with BullMQ queue

February 2026

clientId → merchantId Rename

  • Standardised internal naming: clientId → merchantId across 8 database tables
  • Checkout context updated: CheckoutContext.client → .merchant
  • Migration 20260208200000 applied to production

Customer Health Scores

  • AI-powered health scoring (0–100) for every customer
  • Factors: payment history, engagement, revenue trend, dispute rate
  • Health score column added to customer list and detail views

January 2026

Usage-Based Billing

  • Meter creation and usage event ingestion API
  • Support for sum, count, max, and unique aggregation types
  • Usage-based line items on invoices with configurable billing periods

Terminal Payments — PAX A920

  • Full POS connector architecture: Cloud ↔ Tauri Connector ↔ PAX Terminal
  • Device registration, pairing, and heartbeat monitoring
  • In-person sale, refund, and void operations via dashboard and API
  • Real-time payment status via SSE

December 2025

Platform Launch

  • Engine-API on AWS ECS Fargate (Frankfurt)
  • PostgreSQL 18 on RDS with row-level security
  • Dashboard and Checkout on Vercel (global edge)
  • Cron-worker and background services on Hetzner

Core Billing Engine

  • Products with one-time, recurring, and usage-based pricing
  • Subscription lifecycle: trials, grace periods, proration, cancellation
  • Invoice pipeline: draft → open → finalized → paid
  • AI-powered dunning with configurable retry schedules

Payment Processing

  • NMI gateway integration with gateway-agnostic adapter layer
  • Card-on-file and merchant-initiated transaction compliance
  • Unified transaction model: sale, refund, void, capture, dispute
  • Pay by Bank / open banking collection is not a live merchant checkout rail. Do not treat the December 2025 launch note as a current product claim.

Developer Tools

  • REST API under /v2/*
  • Generated TypeScript, Go, and PHP SDK source; see current SDK availability
  • Webhook event types with signature verification
  • Interactive API playground powered by fumadocs-openapi
  • MCP server for AI agent billing automation

Integrations

  • PracticeHub (patients, packages, appointments sync)
  • Slack notifications
  • Quaderno tax automation
  • Xero and QuickBooks Online accounting sync was announced at launch and remains in development. It is not installable from the Apps Marketplace.

On this page