When a store moves its subscriptions to Subi, whatever it built on the old app's API has to point at ours: a members' area, a sheet, a helpdesk view, a loyalty or affiliate sync. This page puts the common calls and webhooks of Recharge, Skio and Loop beside Subi's, and says what to do where Subi has none. The other apps' names are as their own developer docs gave them on 20 October 2026; check their reference for the details.

The Subi API and webhooks come with the Starter, Subi and Subi Plus plans; the Free plan does not include them. The developers page has the first call, the limits and both references.

What changes in your code

Calls

What you doSubiRechargeSkioLoop
List subscriptionsGET subscription-contracts/, filtered by status, customer, dates and intervalGET /subscriptionsthe Subscriptions querysee their reference
Read one subscription with its productsGET subscription-contracts/{id}/; the list leaves the lines outGET /subscriptions/{id}the Subscriptions querysee their reference
Find a customerGET subscribers/?email=GET /customersthe StorefrontUsers queryGET /customer
CancelPOST subscription-contracts/{id}/cancel/POST /subscriptions/{id}/cancelcancelSubscriptionPOST /subscription/{id}/cancel
Pause and resumePOST .../pause/, .../resume/see their referencepauseSubscription, unpauseSubscriptionPOST /subscription/{id}/pause, /resume
Skip the next orderPOST .../skip/POST /charges/{id}/skipskipSubscriptionPOST /subscription/{id}/skipNext
Move the next billing datePOST .../reschedule/, on plans that allow editing the next billing datePOST /subscriptions/{id}/set_next_charge_dateupdateNextBillingDatePOST /subscription/{id}/reschedule
Reactivate a cancelled subscriptionPOST .../resume/, the same call that resumes a paused onePOST /subscriptions/{id}/activatereactivateSubscriptionPOST /subscription/{id}/reactivate
Swap, add, change or remove a productPATCH .../lines/ with lines_to_swap, lines_to_update, lines_to_add or lines_to_removePUT /subscriptions/{id} to swap or change; see their reference to add or removeswapSubscriptionProductVariants, addSubscriptionLine, updateSubscriptionLinesee their reference
Discount a subscriptionPATCH .../lines/, a line's discount_percentage in lines_to_updatePOST /charges/{id}/apply_discountapplyDiscountCodesee their reference

Subi paths in the Subi column are under /public/v1.0/; ... stands for subscription-contracts/{id}. Loop's paths start with its API version, such as /2026-04.

Webhooks

What you doSubiRechargeSkioLoop
A subscription startsSUBSCRIPTION_CREATEDsubscription/createdsee their referencesubscription/created
A subscription is cancelledSUBSCRIPTION_CANCELED, with the cancellation reasonssubscription/cancelledSubscription cancelledsubscription/cancelled
Paused, then resumedSUBSCRIPTION_PAUSED, SUBSCRIPTION_RESUMEDsubscription/paused, subscription/activatedsee their referencesubscription/paused, subscription/resumed
A renewal is paidSUBSCRIPTION_BILLING_SUCCEEDED, with the renewal's Shopify order idcharge/paid, order/processedorderPlacedorder/processed
A renewal payment failsSUBSCRIPTION_BILLING_FAILEDcharge/failedsee their referenceorder/paymentFailed

Where Subi has no call or webhook yet

Moving a store and would rather not rebuild the integration yourself? Tell us what it connects to and, on any paid Subi plan, we prepare it for your store. Stuck on a call? Write to [email protected] with the request you sent and the answer you got, and leave the key out.