actor fieldYou can now record who initiated subscription billing, contract edits, and status changes — customer, merchant, or partner app — at the time the mutation runs.
actor argument.Charge creation and contract changes were recorded, but who initiated the action wasn't standardized as a mutation argument.
actor now accepts customer / merchant / partner , letting you make the source of an action explicit.
When the buyer initiates the action. Example: clicking "pay now" in the customer portal.
When the merchant or their staff manually initiates the action.
When a partner app's automated system initiates the action. Example: scheduled billing or retry logic.
subscriptionBillingAttemptCreate only subscriptionBillingAttemptInput.actor is passed via the input object, as the article explicitly states. Everything else is included as actor a mutation argument.The supported mutations listed in the article fall into the following 3 groups by purpose.
| Group | Supported mutations |
|---|---|
| Billing attempt Billing Attempts |
subscriptionBillingAttemptCreate(subscriptionBillingAttemptInput.actor via)subscriptionBillingCycleChargesubscriptionBillingCycleBulkCharge
|
| Contract editing Contract Edits |
subscriptionContractCreatesubscriptionContractUpdatesubscriptionContractAtomicCreatesubscriptionContractProductChangesubscriptionBillingCycleContractEdit
|
| Status update Status Updates |
subscriptionContractActivatesubscriptionContractPausesubscriptionContractCancelsubscriptionContractFailsubscriptionContractExpire
|
actor The new argument and its purpose (tracking who initiated it)
The three possible values (customer / merchant / partner) and examples of each
The 13 supported mutations (3 groups)
subscriptionBillingAttemptCreate only via the input object
API version tag: 2026-07
actor whether it is required or optional, and its default value → Not documented
Behavior when unspecified → Not documented
The recorded actor read (query) method → Not documented
Access scopes / permissions required to use it → Not documented
actor whether it can be verified to match the authenticating party → Not documented
2026-07).It only accepts customer / merchant / partner —these 3 values only. The sender must be designed to correctly map and pass one of these.
subscriptionBillingAttemptCreate goes not directly under the arguments but inside subscriptionBillingAttemptInput.actor . A shared client implementation needs branching.
It spans 13 mutations for charges, contract edits, and status updates. In your own subscription integration code, you should apply a consistent actor setting policy across all call sites.
The article doesn't state whether it is required, its default, or the behavior when unspecified. Verify the actual behavior in a sandbox before finalizing production logic.
2026-07 is on the "analysis & audit" axisThe article's tag is 2026-07.actor is not a feature that changes payments themselves, but ratherrecords "who initiated and triggered that subscription operation" as structured metadata. It's useful for churn analysis, audit logs, and distinguishing automatic vs. manual. How to read the recorded value isn't described in the article, so it needs to be confirmed separately.
actor always attachcustomer / merchant / partner and aggregate cancellations and failures by it.actor isn't documented in the article. Before aggregating, confirm the retrieval method (query) in the target API version.actor , recording the action's origin as structured metadata.customer, admin-panel staff actions to merchant, and backend automated processes to partner —standardize this mapping as a unified implementation approach.subscriptionBillingAttemptCreate and the like), attach partner , and record the customer's "pay now" separately as customer .subscriptionBillingAttemptCreate is passed via subscriptionBillingAttemptInput.actor —note this. In the scheduler/retry path code, hardcode a fixed partner .actor field that was added (API 2026-07).