subscriptionBillingAttemptCreate now has a new field paymentProcessingPolicy added. Even without a valid payment method, you now have the option to create an order in an unpaid state.
paymentProcessingPolicy.
To complete an order via a billing attempt, the contract had to have a valid payment method. Without one, no order could be created.
paymentProcessingPolicy in SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER specifying this creates an unpaid order even without a valid payment method.
FAIL_UNLESS_VALID_PAYMENT_METHODBehavior is the same whether you omit the field or explicitly specify this value.Order creation fails if there's no valid payment method(= same as the previous behavior).
SKIP_PAYMENT_AND_CREATE_UNPAID_ORDEREven if the subscription contract has no valid payment method,the system creates an unpaid order. Think of it as skipping payment processing and just creating the order first.
subscriptionBillingAttemptCreate calls will continue to work as before if you do nothing (backward compatible).FAIL_UNLESS_VALID_PAYMENT_METHOD) fails to create an order if the payment method is invaliddoes not succeed. Specify it explicitly only when you want to create an unpaid order SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER explicitly.| Item | FAIL_UNLESS_VALID_PAYMENT_METHOD (default / when omitted) | SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER |
|---|---|---|
| Is a valid payment method required? | Required Order creation fails without one | Not required Order is created even without one |
| Order created | Regular order (with payment processing) | Unpaid order (skips payment) |
| Behavior when the field is omitted | Same as this | — |
| Backward compatibility | Same as before | New behavior requiring explicit specification |
This feature 2026-04 release candidate became available in. The article does not state when it will be in the stable release or when the spec will be finalizednot stated.
For concrete implementation steps, the article points to the "building a subscription contract" documentation. Check that for API schema details and error behavior.
subscriptionBillingAttemptCreate mutation. The article does not detail the downstream flow for unpaid orders (invoice issuance, payment reconciliation, dunning, etc.).subscriptionBillingAttemptCreate to paymentProcessingPolicy Just pass it in. The diff is just adding one field to your existing billing attempt flow.
When unspecified, it behaves the same as FAIL_UNLESS_VALID_PAYMENT_METHOD . Existing code keeps working as-is if you don't touch it.
SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER creates an order without running payment processing. The design assumes that collecting payment is handled in a separate flow after order creation.
Behavior depends on "whether the contract has a valid payment method." Flows aimed at creating unpaid orders should be implemented with awareness of the payment method state on the contract side.
A feature now available in the release candidate. For production use, pin the API version to 2026-04 and verify unpaid order generation and downstream processing in a sandbox before shipping. Follow the "building a subscription contract" doc for implementation details.
SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER to create the order as an unpaid order. Billing and collection are handled separately offline.subscriptionBillingAttemptCreate Just switch the policy at runtime. Payment reconciliation is handled by your own/external flow after order creation.SKIP_PAYMENT_AND_CREATE_UNPAID_ORDER only for dunning targets.paymentProcessingPolicy . SpecifyingSKIP_PAYMENT_AND_CREATE_UNPAID_ORDER lets you create an 'unpaid order' even without a valid payment method.