Hello,
We are a Japanese nonprofit organization using the Subscriptions API in production. We are experiencing two issues that appear to be related and would appreciate your help investigating them.
Target
Location ID : KXE2FFP9ZMN74
Subscription ID : 2159b95f-de33-4566-bb73-06c99d735c9b
Customer ID : [redacted]
Environment : Production
Square-Version : 2026-07-15
Issue 1: An unexpected charge occurred
On 2026-08-30 at 00:39:48 JST (2026-08-29 15:39:48 UTC), we called DeleteSubscriptionAction to remove a scheduled SWAP_PLAN action:
action_id : f0a1dfdc-675b-3a14-a640-99f7ac1cee83
effective_date : 2026-09-09
The request succeeded.
Three seconds later, at 00:39:51 JST (15:39:51 UTC), an invoice that we did not request was automatically issued and immediately charged:
Amount : ¥1,500 (one full month of the plan)
Due date : 2026-08-30
Line item: Claude NPOプラン(スタンダードシート)
As a result, charged_through_date advanced from 2026-09-09 to 2026-10-09.
We expected the next billing date to be 2026-09-09 and did not expect any charge to occur on 2026-08-30, 10 days before that date.
We have already refunded this charge through the Square Dashboard.
Questions
- Why was this invoice issued, and which billing period did it cover?
- Is it expected behavior for deleting a
SWAP_PLANaction to trigger a recalculation of the billing schedule and an immediate charge? - We checked
/v2/subscriptions/{id}/eventsand found no event corresponding to this charge. Only two events are present:START_SUBSCRIPTIONandBILLING_ANCHOR_DATE_CHANGED, both dated 2026-08-15. Is it expected for a charge to occur without a corresponding subscription event?
Issue 2: DeleteSubscriptionAction returns HTTP 500
Two actions currently remain on this subscription:
CHANGE_BILLING_ANCHOR_DATE
action_id : bfb42563-4676-43b5-93fc-0927b1f1328d
effective_date : 2026-09-09
CANCEL
action_id : 10aec353-53f9-3409-aa71-c38654c3d402
effective_date : 2026-10-09
Attempts to delete them returned:
Deleting CHANGE_BILLING_ANCHOR_DATE → HTTP 500 INTERNAL_SERVER_ERROR
Deleting CANCEL → HTTP 409 CONFLICT
After both attempts, the subscription’s version, charged_through_date, and action list remained unchanged, and no additional charge occurred.
Questions
- Could you investigate why deleting
CHANGE_BILLING_ANCHOR_DATEreturns HTTP 500? Since the API returns a 5xx rather than a 4xx response, this appears to indicate a server-side error rather than an invalid request. - Is there any way to remove this action, either through the API or the Square Dashboard?
- Could the HTTP 409 response when deleting the
CANCELaction be related to the remainingCHANGE_BILLING_ANCHOR_DATEaction?
About the CHANGE_BILLING_ANCHOR_DATE action
We have never called the ChangeBillingAnchorDate endpoint.
On 2026-08-16 at 12:42 JST, we called SwapPlan with only the following request body:
{
"new_plan_variation_id": "YCQFYUTI4RF2MDFIU22RSE6N"
}
The response contained two actions: SWAP_PLAN and CHANGE_BILLING_ANCHOR_DATE.
We therefore believe that the CHANGE_BILLING_ANCHOR_DATE action was generated automatically by Square.
Please also note that the BILLING_ANCHOR_DATE_CHANGED event in the subscription event history is dated 2026-08-15, the subscription start date, rather than 2026-08-16 when SwapPlan was called.
Questions
- Is it expected for
SwapPlanto automatically create aCHANGE_BILLING_ANCHOR_DATEaction? - The billing anchor date had already been set to the 9th when the subscription was created on 2026-08-15. It appears that another anchor-date-change action setting it to the same value was created. Could this duplicate action be related to the inconsistent state we are seeing?
Timeline
2026-08-15 20:35 JST Subscription created via Checkout
(prorated charge of ¥1,210)
2026-08-16 12:31 JST UpdateSubscription used to clear canceled_date
(cancellation rescinded)
Verified afterwards:
canceled_date unset, actions empty
2026-08-16 12:42 JST SwapPlan called (Standard → Premium)
Response contained:
SWAP_PLAN and CHANGE_BILLING_ANCHOR_DATE
2026-08-30 00:39:48 JST
DeleteSubscriptionAction called for SWAP_PLAN
Request succeeded
2026-08-30 00:39:51 JST
Unexpected invoice issued and charged (¥1,500)
2026-08-30 00:40 JST Cancellation requested
CANCEL action created
2026-08-30 00:49 JST Charge refunded through Square Dashboard
2026-08-30 01:0x JST Attempted to delete the remaining actions
→ HTTP 500 / HTTP 409
What we would like
- An explanation of why the unexpected charge in Issue 1 occurred
- Removal or repair of the
CHANGE_BILLING_ANCHOR_DATEaction (bfb42563-4676-43b5-93fc-0927b1f1328d) - Guidance on any operations or API sequences we should avoid to prevent this issue from recurring
Context
We are currently migrating our members to recurring billing through the Subscriptions API.
This incident occurred during what we believe should be a routine operation: cancelling a scheduled plan change. Because the same unexpected charge could potentially occur for other subscriptions, we have temporarily disabled our plan-change feature until we understand the cause.
We would appreciate your help investigating this issue and any guidance on how to safely handle scheduled plan changes in the meantime.
We can provide full request and response logs, including timestamps and request details, if needed. Sensitive credentials and access tokens will be redacted.
Thank you.