UK sandbox hosted recurring checkout: subscription and SCA acceptance testing

We are testing a UK GBP subscription integration before enabling real payments, using API version 2026-08-19 and POST /v2/online-checkout/payment-links with checkout_options.subscription_plan_id set to a subscription plan variation.

The hosted sandbox Test Payment action completed a GBP19 one-off payment, but the order remained OPEN and a search for the unique variation found no subscription. Our application therefore granted no paid subscription access. That test has been fully refunded and the payment link closed.

In a separate sandbox test, creating the subscription through the Subscriptions API produced the recurring object, a paid invoice and successful original subscription/invoice/refund webhooks. We distinguish that from proving the hosted checkout’s recurring-contract creation and SCA flow.

We have read Subscription not created and would appreciate confirmation of the current supported test procedure:

  1. Does hosted checkout support subscription creation in sandbox now? If yes, which checkout action/configuration/test payment method should be used? If not, what pre-live acceptance procedure does Square recommend?
  2. How should a UK integration test the hosted checkout’s applicable SCA path without charging a real card or enabling real customer sales?
  3. Is there a supported accelerated sandbox billing clock for monthly/yearly subscription renewals and multi-phase credit discounts? If not, what renewal acceptance method is recommended? We already verify actual provider schedules and test application settlement with controlled fixtures, but do not represent those as elapsed-month/year provider tests.

We can supply the closed sandbox test’s references through an appropriate private channel if needed. We are requesting guidance only, not activation, account changes or replacement test transactions. Thank you.

Hi @samopus - For full end-to-end testing, we typically recommend using production.

The payment links endpoint does support a subscription ID, but the sandbox subscription lifecycle is unreliable — the payment may succeed as a one-off while the Subscription object is never created. This is a known sandbox limitation. You could do the following:

  • Use the Subscriptions API directly (CreateSubscription) in sandbox to validate your recurring-contract logic and webhook handling.
  • Validate CreatePaymentLink request/response shapes in sandbox.
  • Confirm end-to-end hosted checkout → subscription creation in production with a controlled low-value transaction.

Square sandbox supports 3D Secure / SCA flows via the Web Payments SDK. See card numbers here. However, hosted checkout in sandbox does not expose the SCA card-entry step to your code — SCA is handled internally by Square’s hosted page. To test your integration’s SCA handling, use the Web Payments SDK directly in sandbox, then rely on production hosted checkout for the combined flow.

There is no sort of accelerated billing clock to test, unfortunately.