โ ๏ธ Breaking Change
Impact Score: 7/10
Saleor 3.13.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: saleor ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-02.
Breaking-change evidence from the source
Breaking changes - **Feature preview breaking change**:
- **Feature preview breaking change**: - Improve support for handling transactions - #10350 by @korycins
โก Executive Summary (TL;DR)
Saleor 3.13.0. Source highlight: Welcome to the 3.13 release of Saleor!
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โ ๏ธ Breaking Changes & Deprecations (2)
- Breaking changes - **Feature preview breaking change**:
- - **Feature preview breaking change**: - Improve support for handling transactions - #10350 by @korycins
โจ New Features & Capabilities (6)
- `orderGrantRefundCreate` - Add granted refund to the order.
- Add new webhook subscriptions:
- Add new input fields:
- `voidedAmount` - Use `canceledAmount`. This field will be removed in Saleor 3.14 (Preview feature).
- `status` - Not needed anymore. The transaction amounts will be used to determine a current status of transactions. This field will be removed in Saleor 3.14 (Preview feature).
- `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature).
โก Performance & Enhancements (3)
- Improve support for handling transactions - #10350
- Improve support for handling transactions - #10350
- For all new `transactionItem` created by `transactionCreate`, any update action can be done only by the same app/user that performed `transactionCreate` action. This change impacts only on new `transactionItem,` the already existing will work in the same way as previously.
๐ง Bug Fixes & Patches (1)
- Fix missing webhook triggers for `order_updated` and `order_fully_paid` when an order is paid with a `transactionItem` - #12508
๐ View Raw Release Notes (Original Developer Log)
Welcome to the 3.13 release of Saleor!
### Highlights
- Improve support for handling transactions - #10350 by @korycins
- API changes:
- Add new mutations:
- `transactionEventReport` - Report the event for the transaction.
- `orderGrantRefundCreate` - Add granted refund to the order.
- `orderGrantRefundUpdate` - Update granted refund.
- Add new types:
- `OrderGrantedRefund` - The details of the granted refund.
- Add new webhooks:
- `TRANSACTION_CHARGE_REQUESTED` - triggered when a staff user request charge for the transaction.
- `TRANSACTION_REFUND_REQUESTED` - triggered when a staff user request refund for the transaction.
- `TRANSACTION_CANCELATION_REQUESTED` - triggered when a staff user request cancelation for the transaction.
- Add new webhook subscriptions:
- `TransactionChargeRequested` - Event sent when transaction charge is requested.
- `TransactionRefundRequested` - Event sent when transaction refund is requested.
- `TransactionCancelationRequested` - Event sent when transaction cancelation is requested.
- Add new fields:
- `OrderSettings.markAsPaidStrategy` - Determine what strategy will be used to mark the order as paid.
- `TransactionItem`:
- `authorizePendingAmount` - Total amount of ongoing authorization requests for the transaction.
- `refundPendingAmount` - Total amount of ongoing refund requests for the transaction.
- `cancelPendingAmount` - Total amount of ongoing cancel requests for the transaction.
- `chargePendingAmount` - Total amount of ongoing charge requests for the transaction.
- `canceledAmount` - Total amount canceled for this transaction.
- `name` - Name of the transaction.
- `message` - Message related to the transaction.
- `pspReference` - PSP reference of transaction.
- `createdBy` - User or App that created the transaction.
- `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction details.
- `TransactionEvent`:
- `pspReference` - PSP reference related to the event.
- `message` - Message related to the transaction's event.
- `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction event details.
- `amount` - The amount related to this event.
- `type` - The type of action related to this event.
- `createdBy` - User or App that created the event.
- `Order`:
- `totalCharged` - Amount charged for the order.
- `totalCanceled` - Amount canceled for the order.
- `grantedRefunds` - List of granted refunds.
- `totalGrantedRefund` - Total amount of granted refund.
- `totalRefunded` - Total refund amount for the order.
- `totalRefundPending` - Total amount of ongoing refund requests for the order's transactions.
- `totalAuthorizePending` - Total amount of ongoing authorization requests for the order's transactions.
- `totalChargePending` - Total amount of ongoing charge requests for the order's transactions.
- `totalCancelPending` - Total amount of ongoing cancel requests for the order's transactions.
- `totalRemainingGrant` - The difference between the granted refund and the pending and refunded amounts.
- `OrderEventsEnum`:
- `TRANSACTION_CHARGE_REQUESTED`
- `TRANSACTION_CANCEL_REQUESTED`
- `TRANSACTION_MARK_AS_PAID_FAILED`
- Add new input fields:
- `TransactionCreateInput` & `TransactionUpdateInput`:
- `name` - The name of the transaction.
- `message` - The message of the transaction.
- `pspReference` - The PSP Reference of the transaction.
- `amountCanceled` - Amount canceled by this transaction.
- `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction.
- `TransactionEventInput`:
- `pspReference` - The PSP Reference of the transaction.
- `message` - Message related to the transaction's event.
- Deprecate webhooks:
- `TRANSACTION_ACTION_REQUEST` - Use `TRANSACTION_CHARGE_REQUESTED`, `TRANSACTION_REFUND_REQUESTED`, `TRANSACTION_CANCELATION_REQUESTED` instead.
- Deprecate object fields:
- `TransactionItem`:
- `voidedAmount` - Use `canceledAmount`. This field will be removed in Saleor 3.14 (Preview feature).
- `status` - Not needed anymore. The transaction amounts will be used to determine a current status of transactions. This field will be removed in Saleor 3.14 (Preview feature).
- `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `TransactionEvent`:
- `status` - Use `type` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `name` - Use `message` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `TransactionActionEnum`
- `VOID` - Use `CANCEL` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `Order`:
- `totalCaptured` - Use `totalCharged` instead. Will be removed in Saleor 4.0
- `OrderEvent`:
- `status` - Use `TransactionEvent` to track the status of `TransactionItem`. This field will be removed in Saleor 3.14 (Preview feature).
- `OrderEventsEnum`:
- `TRANSACTION_CAPTURE_REQUESTED` - Use `TRANSACTION_CHARGE_REQUESTED` instead. This field will be removed in Saleor 3.14 (Preview feature).
- `TRANSACTION_VOID_REQUESTED` - Use `TRANSACTION_CANCEL_REQUESTED` instead. This field will be removed in Saleor 3.14 (Preview feature).
- Deprecate input fields:
- `TransactionCreateInput` & `TransactionUpdateInput`:
- `status` - Not needed anymore. The transaction amounts will be used to determine the current status of transactions. This input field will be removed in Saleor 3.14 (Preview feature).
- `type` - Use `name` and `message` instead. This input field will be removed in Saleor 3.14 (Preview feature).
- `reference` - Use `pspReference` instead. This input field will be removed in Saleor 3.14 (Preview feature).
- `amountVoided` - Use `amountCanceled` instead. This input field will be removed in Saleor 3.14 (Preview feature).
- `TransactionEventInput`:
- `status` - Status will be calculated by Saleor. This input field will be removed in Saleor 3.14 (Preview feature).
- `reference` - Use `pspReference` instead. This input field will be removed in Saleor 3.14 (Preview feature).
- `name` - Use `message` instead. This field will be removed in Saleor 3.14 (Preview feature).
- Support for payment apps - #12179 by @korycins
- Add new mutations:
- `paymentGatewayInitialize` - Initialize the payment gateway to process a payment.
- `transactionInitialize` - Initiate payment processing.
- `transactionProcess` - Process the initialized payment.
- Add new synchronous webhooks:
- `PAYMENT_GATEWAY_INITIALIZE_SESSION` - Triggered when a customer requests the initialization of a payment gateway.
- `TRANSACTION_INITIALIZE_SESSION` - Triggered when a customer requests the initialization of a payment processing.
- `TRANSACTION_PROCESS_SESSION` - Triggered when a customer requests processing the initialized payment.
### Breaking changes
- **Feature preview breaking change**:
- Improve support for handling transactions - #10350 by @korycins
- For all new `transactionItem` created by `transactionCreate`, any update action can be done only by the same app/user that performed `transactionCreate` action. This change impacts only on new `transactionItem,` the already existing will work in the same way as previously.
- `transactionRequestAction` mutation can't be executed with `MANAGE_ORDERS` permission. Permission `HANDLE_PAYMENTS` is required.
- Drop calling `TRANSACTION_ACTION_REQUEST` webhook inside a mutation related to `Payment` types. The related mutations: `orderVoid`, `orderCapture`, `orderRefund`, `orderFulfillmentRefundProducts`, `orderFulfillmentReturnProducts`. Use a dedicated mutation for triggering an action: `transactionRequestAction`.
See the [3.12 to 3.13](https://docs.saleor.io/docs/3.x/upgrade-guides/3-12-to-3-13) upgrade guide for more details.
### GraphQL API
- [Preview] Add `StockBulkUpdate` mutation - #12139 by @SzymJ
- [Preview] Add `ProductBulkCreate` mutation - #12177 by @SzymJ
- [Preview] Add `CustomerBulkUpdate` mutation - #12268 by @SzymJ
- Upgrade GraphiQL to `2.4.0` for playground - #12271 by @zaiste
- Add new object type `AppManifestRequiredSaleorVersion` - #12164 by @przlada
- Add new optional field `Manifest.requiredSaleorVersion`
- Add `requiredSaleorVersion` validation to `appInstall` and `appFetchManifest` mutations
- Add new field `author` to `Manifest` and `App` object types - #12166 by @przlada
- Add backward compatibility for `taxCode` field - #12325 by @maarcingebala
- Support resolving `Order` as an entity in Apollo Federation - #12328 by @binary-koan
### Saleor Apps
- Add `requiredSaleorVersion` field to the App manifest determining the required Saleor version as semver range - #12164 by @przlada
- Add new field `author` to the App manifest - #12166 by @przlada
- Add `GIFT_CARD_SENT` asynchronous event to webhooks - #12472 by @rafalp
### Other changes
- Add Celery beat task for expiring unconfirmed not paid orders - #11960 by @kadewu:
- Add `expireOrdersAfter` to `orderSettings` for `Channel` type.
- Add `ORDER_EXPIRED` webhook triggered when `Order` is marked as expired.
- Create order discounts for all voucher types - #12272 by @IKarbowiak
- Core now supports Dev Containers for local development - #12391 by @patrys
- Publish schema.graphql on releases - #12431 by @maarcingebala
- Fix missing webhook triggers for `order_updated` and `order_fully_paid` when an order is paid with a `transactionItem` - #12508 by @korycins
- Remove Mailhog in favor of Mailpit; add it to Dev Container - #12402 by @carlosa54