Subscription plan deactivated immediately due to billing issue

When I create a subscription in my Sandbox app using the test Visa (4111 1111 1111 1111), it will occasionally fail for an unknown reason. The Square Dashboard just says: “A billing issue has occured and this subscription has been deactivated.” (sidebar: “occurred” is spelled wrong.)

I subscribed to webhooks to see if it would give more information. It looks like the subscription is created and “ACTIVE.”

Type: subscription.created
Event ID: c2c5fa21-b2bf-3f58-889e-1780cc628e65
Created: 2026-03-26T22:01:00.476Z
Data: {
  "type": "subscription",
  "id": "96d13661-d862-4cab-97c1-6e52c39e174d",
  "object": {
...
      "start_date": "2026-03-26",
      "status": "ACTIVE",
      "tenant": "BUYER",
      "timezone": "UTC",
      "version": 1
    }
  }
}

But a couple seconds later I get another update saying it was deactivated:

Type: subscription.updated
Event ID: 33a4326a-c3b5-31ee-8a94-d56702bed594
Created: 2026-03-26T22:01:05.396Z
Data: {
  "type": "subscription",
  "id": "96d13661-d862-4cab-97c1-6e52c39e174d",
...
      "start_date": "2026-03-26",
      "status": "DEACTIVATED",
      "tenant": "BUYER",
      "timezone": "UTC",
      "version": 1
    }
  }
}

Based on this, it looks like I cannot rely on the “ACTIVATED” status of the subscription to determine if a customer has an active subscription. How can I get more information about why the account was deactivated? And what conditions do I need to check to verify that a customer is up-to-date on subscription dues?

Hello,
In Square’s Sandbox, test cards can sometimes trigger deactivation to simulate real-world billing failures, so the “ACTIVE” status alone isn’t reliable. To understand why a subscription was deactivated, you’ll need to check the subscription.updated webhook payload for cancellation_reason or billing_issue fields, and confirm payment status through the related invoice.payment events. The safest way to verify a customer’s subscription is up-to-date is by checking both the subscription’s current status and whether its latest invoice is marked as PAID.

Best regards,
Anna
peryourhealth