v1.37.0ADDEDOctober 7, 2026
PayPal for apps, safer refunds, and better webhooks
For merchants
- Pay for apps with PayPal. Paid App Store apps, one-time or monthly, can be bought with PayPal where PayPal is available for your store. You approve the payment at PayPal first, and the app turns on once the payment arrives. See Paying for apps with PayPal.
- Fix a failed card payment for an app. If the last card payment for an app subscription failed, Update payment method on the app page opens the Stripe billing portal for that subscription.
- App refunds in Billing. Billing → Refunds lists app payments that are being returned to you and their status: in progress, refunded or settled.
- Collect the balance on an edited order. When an edit raises an order total, the order shows Balance due and a Collect balance button that records a payment you took outside the checkout, such as cash or a bank transfer. When an edit lowers the total, the order shows Refund due. An edit never charges or refunds the customer by itself. See Collecting the balance on an edited order.
- Refunds the payment provider did not confirm. If a provider gives no answer to a refund, the order shows it with Confirm refund and Reject. Check the transaction in the provider dashboard first. Confirming sends the customer email and runs the other follow-ups; rejecting makes the amount refundable again. See Confirming or rejecting an unconfirmed refund.
- Customer groups are per store. A customer who shops at several stores can be in a different group at each one, and a group's discount and tax exemption apply only in the store that owns it. See Customer groups.
- View-only pages for staff. Pages that only the owner or an admin can change, such as Settings, Taxes, Currencies, Locations, Inventory, Customer groups and Gift cards, now open for staff as read-only pages with a notice instead of failing with an error. See Team members.
- A fresh code for sensitive actions. If two-step verification is on for your account, creating an API key and giving someone the Admin role (by role change or invitation) ask for a current code. A code stays valid for 5 minutes.
- Webhooks in the admin. Settings → Webhooks shows each subscription as Active, Failing or Disabled with its last error, has a Send test button that also turns a disabled subscription back on, and lists failed deliveries with Retry and Discard. See Managing webhooks in your admin.
- Store ID in Settings. Settings → Store Information shows your Store ID with a copy button. See General settings.
- Old store address keeps working. When a store address is renamed, the old
<slug>.mycartly.proaddress redirects to the new one (301, path and query kept) for 90 days, and no other store can take it during that time. - Uninstalling an app cuts its access. Uninstalling an app, including Zapier and Make, revokes its access to your store and stops its webhooks right away.
For developers
- GraphQL Storefront API.
X-Shop-ID(or theshop_idquery parameter) accepts the Store ID (the shop UUID), the store slug, or<slug>.mycartly.pro. A malformed value returns 400 and an unknown store slug or host returns 404, each with a message that says what to send. The examples in the GraphQL guide now match the schema:products(page, limit)returnsedgesand apageInfowithtotal,page,limit,pages,hasNextPageandhasPreviousPage. - Webhook headers. Every delivery carries
X-Cartly-Event-Id, the same on every retry of an event, so dedupe on it. A normal delivery, a retry from the failed-delivery queue and Send test send the same headers and signatures. VerifyX-Cartly-Signature-V2.X-Cartly-Shop-Domaincarries<slug>.mycartly.pro. - Delivery rules. Each event is sent once per subscription with a 10 second timeout. Redirects are not followed, so a 3xx response is a failed delivery. Failed deliveries go to the store's retry queue. A subscription is disabled after 5 failures in a row that span at least an hour, and a successful Send test or retry turns it back on. See the Webhooks guide.
- App uninstall. When a store uninstalls your app, its tokens are revoked and its webhook subscriptions stop at once. A subscription to
app/uninstalledstill receives that one event and is then removed. This includes REST hooks created by Zapier and Make.