---
title: Loop Subscriptions API Integration on Truto
slug: loopsubscriptions
category: E-Commerce
canonical: "https://truto.one/integrations/detail/loopsubscriptions/"
---

# Loop Subscriptions API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 75 tools for Loop Subscriptions that AI agents can call directly.

- **get_single_loop_subscriptions_subscription_by_id** — Get a single loopwork subscription by id, including billing, delivery, products, and status details. Returns: id, shopifyId, originOrderShopifyId, createdAt, updatedAt, orderNote, totalLineItemPrice, totalLineItemDiscountedPrice, deliveryPrice, currencyCode, status, cancellationReason, cancellationComment, completedOrdersCount, pausedAt, cancelledAt, expiredAt, attributes, isPrepaid,…
- **list_all_loop_subscriptions_subscriptions** — List all loopwork subscriptions. Returns each subscription with id, status, currencyCode, nextBillingDateEpoch, billingPolicy, deliveryPolicy, lines, and customer. Results are returned in descending order of id.
- **create_a_loop_subscriptions_subscription** — Create a loopwork subscription. Returns the created subscription record with fields such as id, shopifyId, status, currencyCode, billingPolicy, deliveryPolicy, shippingAddress, lines, and customer. Required: customerShopifyId, nextBillingDateEpoch, currencyCode, billingPolicy, deliveryPolicy, lines, and shippingAddress. The next billing date must be at least 24 hours in the future.
- **loop_subscriptions_subscriptions_reschedule** — Reschedule the next billing date of a loopwork subscription's upcoming order. Returns a success confirmation with no data payload. Required: subscription_id and newBillingDateEpoch.
- **loop_subscriptions_subscriptions_pause** — Pause an active loopwork subscription, halting future billing and deliveries until it is resumed. Returns a success confirmation with no data payload. Required: subscription_id.
- **loop_subscriptions_subscriptions_resume** — Resume a paused loopwork subscription by id, reactivating billing and deliveries based on the original schedule. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **loop_subscriptions_subscriptions_cancel** — Cancel an active or paused loopwork subscription by id, permanently stopping future billing and deliveries until reactivated. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **loop_subscriptions_subscriptions_reactivate** — Reactivate a cancelled loopwork subscription by id, allowing billing and deliveries to resume based on the original subscription schedule. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **loop_subscriptions_subscriptions_expire** — Expire a loopwork subscription contract by id. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **loop_subscriptions_subscriptions_edit_charge_offset** — Update the charge offset of an existing loopwork subscription contract, shifting the charge a number of days from the scheduled delivery date. Returns no response data on success. Required: subscription_id, chargeOffset.
- **loop_subscriptions_subscriptions_update_anchor** — Update the billing anchor on an existing subscription contract in loopwork. Returns: success, message, data, code, pageInfo. Required: subscription_id, anchorType, anchorDay, anchorMonth. anchorType must match the subscription's current billing frequency (WEEKDAY, MONTHDAY, or YEARDAY, case-sensitive).
- **loop_subscriptions_subscriptions_adjust_prepaid_credits** — Adjust the prepaid credit balance of a subscription in loopwork by adding, deducting, or setting a final balance. Returns: success, message, data, code, pageInfo. Required: subscription_id, amountType, amount, reason.
- **loop_subscriptions_subscriptions_change_plan** — Update the subscription plan (selling plan frequency) for a subscription contract in loopwork. Returns: success, message, data, code. Required: subscription_id, sellingPlanShopifyId, nextBillingDateEpoch.
- **loop_subscriptions_subscriptions_update_address** — Update the shipping address on a subscription contract in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, firstName, lastName, address1, city, countryCode.
- **loop_subscriptions_subscriptions_update_shipping_method** — Update the shipping method on a subscription contract in loopwork, including its delivery price, title, and code. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, deliveryPrice. Shipping method cannot be updated when 'Auto update shipping price' is enabled in Loop.
- **loop_subscriptions_subscriptions_change_payment_method** — Change the payment method on a Loop subscription to a different saved payment method. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and paymentMethodId.
- **loop_subscriptions_subscriptions_add_backup_payment_method** — Add a backup payment method to a Loop subscription for use when the primary payment method fails. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and paymentMethodId.
- **loop_subscriptions_subscriptions_remove_backup_payment_method** — Remove the backup payment method mapped to a Loop subscription. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id.
- **loop_subscriptions_subscriptions_bulk_update** — Set the contract note on a Loop subscription. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and note.
- **create_a_loop_subscriptions_subscription_line** — Add a new subscription line item to a loopwork subscription contract. Returns: success, message, data, code. Required: subscription_id, variantShopifyId.
- **loop_subscriptions_subscription_lines_create_once** — Add a one-time line item to a loopwork subscription contract that is added only to the next order without affecting future recurring orders. Returns: success, message, data, code, pageInfo. Required: subscription_id, variantShopifyId, quantity, discountType, discountValue.
- **loop_subscriptions_subscription_lines_swap** — Swap an existing line in a loopwork subscription contract with a new variant. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, variantShopifyId, quantity, pricingType.
- **delete_a_loop_subscriptions_subscription_line_by_id** — Remove an existing line from a loopwork subscription contract. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id.
- **loop_subscriptions_subscription_lines_bulk_update** — Bulk add, update, and remove line items in a loopwork subscription contract in a single request. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, linesToAdd, linesToUpdate, linesToRemove.
- **loop_subscriptions_subscription_lines_delete_once** — Remove a line once from a loopwork subscription's upcoming order so it is skipped for a single order. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id. An optional orderId body field targets specific orders and is limited access.
- **loop_subscriptions_subscription_lines_edit** — Update the quantity, pricing type, selling plan, or custom discount of a subscription line item in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, quantity.
- **loop_subscriptions_subscription_lines_edit_schedule** — Edit the schedule of a subscription line in loopwork, such as its next order id or order interval. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, nextOrderId; at least one body parameter must be passed.
- **loop_subscriptions_subscription_orders_list_order_schedule** — List the scheduled (upcoming) orders of a subscription contract in Loopwork. Returns: id, shopifyId, status, billingDate, fulfillmentStatus, financialStatus, note, noteAttributes, shopifyCreatedAt, shopifyProcessedAt, shopifyUpdatedAt, currencyCode, totalPriceUsd, totalDiscount, totalLineItemsPrice, totalShippingPrice, shopifyOrderNumber, lines, shippingAddress. Required: subscription_id.
- **loop_subscriptions_subscription_orders_list_order_history** — List the past orders of a subscription contract in Loopwork, including line items, totals, and shipping address. Returns: id, shopifyId, status, billingDate, fulfillmentStatus, financialStatus, note, noteAttributes, shopifyCreatedAt, shopifyProcessedAt, shopifyUpdatedAt, currencyCode, totalPriceUsd, totalDiscount, totalLineItemsPrice, totalShippingPrice, shopifyOrderNumber, lines,…
- **loop_subscriptions_subscription_orders_place** — Place an order for a subscription contract in Loopwork, billing it ahead of its scheduled date. Returns no order payload on success. Gift subscriptions are not supported. Required: subscription_id, preponeFutureOrder.
- **loop_subscriptions_subscription_orders_skip_next** — Skip the next scheduled order of a subscription contract in Loopwork, leaving later scheduled orders unchanged. Returns no order payload on success. Required: subscription_id.
- **loop_subscriptions_subscription_orders_reschedule_future** — Reschedule a future order of a subscription contract in Loopwork to a new billing date. Returns no response body on success. Beta feature, not available on all stores. Required: subscription_id, order_id, newBillingDateEpoch.
- **loop_subscriptions_subscription_orders_update_note** — Update the order note on a specific order of a loopwork subscription. Requires subscription_id, order_id, and the note body field; the store must have the 'Override subscription notes' preference enabled under Loop > Settings > General. Returns an empty 200 response on success.
- **loop_subscriptions_subscription_frequencies_list_available** — List the available billing and delivery frequencies for a Loopwork subscription contract. Returns each frequency option with its billingPolicy and deliveryPolicy, including interval and intervalCount. Required: subscription_id (accepts the Loop internal id, loop-{id}, or shopify-{id} format).
- **loop_subscriptions_subscription_frequencies_bulk_update** — Update the billing frequency of a Loopwork subscription contract. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, billingPolicy (interval, intervalCount), and discountType. If nextBillingDateEpoch is not passed, the next order date for the subscription remains the same.
- **create_a_loop_subscriptions_subscription_discount** — Add a discount code or manual discount to a Loop subscription contract. Returns the applied discount's shopifyId and code. Required: subscription_id.
- **update_a_loop_subscriptions_subscription_discount_by_id** — Update the manual discount on a Loop subscription contract by id (the discount's Shopify ID). Returns: shopifyId, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id, manualDiscount.
- **delete_a_loop_subscriptions_subscription_discount_by_id** — Remove a discount code from a Loop subscription contract by id (the discount's Shopify ID). Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id.
- **loop_subscriptions_subscription_discounts_delete_all** — Remove all discount codes from a Loop subscription contract. Returns the removed discount codes in code. Required: subscription_id.
- **create_a_loop_subscriptions_subscription_checkout** — Create a checkout for a loopwork subscription contract so customers can complete payment for prorated charges resulting from subscription changes. Returns success, message, code, and data containing the created checkout's id and status. Required: subscription_id, lines (each item requires variantShopifyId, quantity, price, type), and manualDiscounts.
- **loop_subscriptions_subscription_checkouts_reactivate** — Trigger the checkout and reactivate operation for a loopwork subscription contract, combining payment for prorated charges with reactivation. Returns success, message, code, and data containing the triggered checkout's id and status. Required: subscription_id and lines (each item requires variantShopifyId, quantity, storePrice, type); manualDiscounts and discounts are optional.
- **list_all_loop_subscriptions_subscription_activity_logs** — List activity logs for a specific subscription in loopwork. Returns each log's id, subscriptionId, key, entity, source, createdAt, and an event-specific data payload such as emailName or errorMessage. Required: subscription_id. Paginated, 50 logs per page by default.
- **loop_subscriptions_subscription_attributes_patch_attributes** — Patch custom attributes on an existing Loop subscription. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, customAttributes.
- **loop_subscriptions_subscription_attributes_bulk_update** — Update the custom attributes on an existing Loop subscription. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, customAttributes.
- **loop_subscriptions_subscription_upgrades_list_profiles** — List all active upgrade profiles applicable to a subscription contract in loopwork. Returns: id, name, priority, shortDescription, bannerTexts, drawerTexts, existingProductInformation, newProductInformation, newProductsInformation, membershipUpgradeInformation. Required: subscription_id.
- **loop_subscriptions_subscription_upgrades_apply_profile** — Apply an upgrade profile to a subscription contract in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, profileId. The subscription_id path parameter accepts the Loop internal id, loop-{id}, or shopify-{id}.
- **loop_subscriptions_subscription_upgrades_log_action** — Log a customer interaction with an upgrade profile in loopwork — banner views, detailed views, or dismissals — for upgrade offer performance tracking. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, profileId, viewType.
- **get_single_loop_subscriptions_customer_by_id** — Get a Loopwork customer's full details by id (the customer's Shopify Customer ID). Returns: id, customerShopifyId, firstName, lastName, email, activeSubscriptions, pausedSubscriptions, cancelledSubscriptions, expiredSubscriptions, fullName, loyaltyPointsBalance, loyaltyCreditBalance, loyaltyCouponBalance, loyaltyCoupons, milestoneJourney, referralLink, paymentMethods, addresses. Required: id.
- **list_all_loop_subscriptions_customers** — List all Loopwork customers in descending id order, each with its subscription counts. Returns: id, firstName, lastName, email, shopifyId, phone, activeSubscriptionsCount, pausedSubscriptionsCount, cancelledSubscriptionsCount, expiredSubscriptionsCount, allSubscriptionsCount. Filterable by email, type, and update-time range.
- **loop_subscriptions_customers_list_subscriptions** — List all subscriptions associated with a specific Loopwork customer. Returns: id, shopifyId, totalLineItemPrice, totalLineItemDiscountedPrice, deliveryPrice, currencyCode, nextBillingDateEpoch, status, billingAttemptSuccessCount, lastPaymentStatus, paymentMethodId, createdAt, updatedAt, customer, cancellationReason, cancellationComment, isPrepaid, billingPolicy, deliveryPolicy, deliveryMethod,…
- **loop_subscriptions_customers_create_session_token** — Generate a secure session token for a Loopwork customer, used to authenticate Storefront API requests and obtain access and refresh tokens. Returns: success, message, data, code, pageInfo. Required: customer_shopify_id.
- **loop_subscriptions_customers_send_login_link** — Email a Loopwork customer portal login link to the customer's email for instant access to their subscriber account. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: customer_shopify_id.
- **loop_subscriptions_customers_list_order_history** — List a loopwork customer's complete order history. Returns each order's id, status, orderType, totalPrice, currencyCode, lines, shippingAddress, and subscription. Required: customer_id.
- **loop_subscriptions_orders_get_by_shopify_order_id** — Get Loop subscription details for an order by its Shopify order id. Returns: orderShopifyId, shopifyCreatedAt, shopifyUpdatedAt, shopifyProcessedAt, shopifyCancelledAt, storeTotalPrice, storeTotalDiscounts, note, customAttributes, subscription. Required: order_shopify_id.
- **loop_subscriptions_orders_list_scheduled** — List Loop subscription orders scheduled within a billing date range, useful for fulfillment planning, reporting, or external synchronization. Returns: id, billingDateEpoch, customer, subscription, status, updatedAt, lines. Required: billingDateStartEpoch, billingDateEndEpoch. The range between them can span at most 7 days.
- **list_all_loop_subscriptions_orders** — List Loop subscription orders across all subscriptions. Filter by Shopify created-at epoch range, billing date epoch range, or updatedAt. Returns: id, shopifyId, status, billingDateEpoch, fulfillmentStatus, financialStatus, shopifyCreatedAt, shopifyProcessedAt, shopifyUpdatedAt, currencyCode, totalPriceUsd, totalDiscount, totalLineItemsPrice, totalShippingPrice, shopifyOrderNumber, totalPrice,…
- **loop_subscriptions_orders_get_status** — Get the current processing status of a Loop order by its Loop internal order id. Returns: id, status. Required: statu_id.
- **loop_subscriptions_report_exports_export_subscriptions** — Trigger an asynchronous export of the Subscriptions analytics report in loopwork. Returns: success, message, data, code, pageInfo. The CSV report is delivered via the analytics_report/export_completed webhook once processing completes. Filters (status, createdAt) are optional — omit them to export all subscriptions.
- **loop_subscriptions_report_exports_export_subscribers** — Trigger an asynchronous export of the Subscribers analytics report in loopwork. Returns: success, message, data, code, pageInfo. The CSV report is delivered via the analytics_report/export_completed webhook once processing completes. Filters (status, createdAt) are optional — omit them to export all subscribers.
- **loop_subscriptions_report_exports_export_subscriptions_summary** — Trigger an asynchronous export of the Subscriptions Summary analytics report in loopwork. Returns: success, message, data, code, pageInfo. The CSV report is delivered via the analytics_report/export_completed webhook once processing completes. Requires filters with dateRange (start, end) and groupBy (daily, weekly, or monthly).
- **loop_subscriptions_report_exports_export_subscriber_summary** — Trigger an asynchronous export of the Subscriber Summary analytics report in loopwork. Returns: success, message, data, code, pageInfo. The CSV report is delivered via the analytics_report/export_completed webhook once processing completes. Requires filters with dateRange (start, end) and groupBy (daily, weekly, or monthly).
- **loop_subscriptions_report_exports_get_status** — Track the status of a previously initiated loopwork report export. Returns: exportId, storeId, myshopifyDomain, reportKey, reportLabel, status, s3Url, filtersApplied, createdAt, completedAt. status is QUEUED, PROCESSING, COMPLETED, or FAILED; s3Url is returned once COMPLETED and is valid for 24 hours. Required: reportexport_id.
- **loop_subscriptions_customer_loyalty_points_credit_points** — Credit loyalty points to a Loopwork customer identified by their Shopify customer id. Returns: success, message, data, code, pageInfo. Required: customer_shopify_id, points, pointsExpiring.
- **loop_subscriptions_customer_loyalty_points_redeem_points** — Redeem loyalty points from a Loopwork customer by their Shopify customer id, deducting points from their balance for rewards or discounts. Returns: success, message, data, code, pageInfo. Required: customer_shopify_id, points.
- **loop_subscriptions_line_attributes_patch_attributes** — Partially update a loopwork line item's attributes — only the keys included in the request are changed, leaving all other attributes untouched. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: line_id, attributes. Reserved internal tracking keys (e.g. _bundleId, is_one_time) cannot be updated or removed.
- **loop_subscriptions_line_attributes_bulk_update** — Completely update a loopwork line item's attributes — the full attribute list sent replaces all existing attribute data. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: line_id, attributes. Reserved internal tracking keys (e.g. _bundleId, is_one_time) cannot be updated or removed.
- **create_a_loop_subscriptions_address** — Create a customer address in loopwork for a Shopify customer. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Requires customerShopifyId, lastName, address1, and countryCode.
- **update_a_loop_subscriptions_address_by_id** — Update an existing customer address in loopwork by id. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: id and address.
- **loop_subscriptions_payment_methods_send_update_mail** — Send the customer an email to update their payment method in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: paymentmethod_id.
- **loop_subscriptions_payment_methods_migrate** — Migrate a customer's payment method into loopwork from an external payment aggregator (Stripe, Authorize.net, Braintree, or PayPal). Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: email, firstName, lastName. Supply exactly one aggregator object (stripe, authorizeNet, braintree, or paypal).
- **loop_subscriptions_cancellation_flows_list_reasons** — List the cancellation reasons configured for the subscription cancellation flow in loopwork. Returns each reason with its id, reason text, position, and customer-facing display flags such as showComment, showDelay, showSkipNext, showPause, and showSwap.
- **loop_subscriptions_cancellation_flows_list_logs** — List cancellation flow logs in loopwork, returned in descending order of id. Returns: id, createdAt, cancellationAction, subscriptionContractShopifyId, benefitPageViewed, cancellationReason, treatementOpted, offerViewed. Max 100 records per page.
- **list_all_loop_subscriptions_selling_plan_groups** — List the selling plan groups available on a loopwork store, each with nested selling plans and their pricing, billing, and delivery policies. Returns: id, name, position, merchantCode, options, summary, createdAt, updatedAt, sellingPlans.
- **loop_subscriptions_selling_plan_groups_list_product_variants** — List the product variants mapped to a selling plan group in loopwork. Returns: variantShopifyId, productShopifyId, variantTitle, productTitle. Required: selling_plan_group_id.
- **list_all_loop_subscriptions_products** — List all loopwork products with their selling-plan mapping status, returned in descending order of id. Returns each product's shopifyId, title, and productVariants including variant title, shopifyId, price, and hasSellingPlan.

## How it works

1. **Link your customer's Loop Subscriptions account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Loop Subscriptions.** The Proxy API is a 1-to-1 mapping of the Loop Subscriptions API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed subscription management inside helpdesks** — CX platforms can let support agents view, pause, skip, or cancel a customer's Loop subscriptions directly from the ticket view — cutting resolution time and preventing avoidable churn without agents leaving the helpdesk.
- **Power conversational SMS and email commerce** — Marketing automation and SMS tools can trigger one-time add-ons, swaps, or reschedules on upcoming subscription orders based on customer replies or campaign engagement, unlocking new upsell revenue on recurring boxes.
- **Automate dunning and payment recovery** — Retention and email platforms can listen for failed charges and trigger secure card update emails through Loop, recovering revenue that would otherwise be lost to passive churn.
- **Unify churn and LTV analytics** — BI and retention analytics tools can ingest subscription summaries, order history, and cancellation reason logs to give merchants unified reporting on subscriber LTV, MRR, and why customers are leaving.
- **Sync loyalty programs with recurring revenue** — Loyalty and rewards SaaS can credit or redeem Loop loyalty points on subscription renewals, letting subscribers earn rewards on every recurring order or burn points to discount their next box.

## What you can build

- **Agent-facing subscription action panel** — Render a customer's active subscriptions with one-click actions to pause, resume, cancel, reactivate, skip the next order, or reschedule the next billing date.
- **One-time upsell injector for upcoming orders** — Append a one-time product to a subscriber's next recurring order via subscription line create-once, powering post-purchase upsells and SMS 'reply-to-add' flows.
- **Product swap and plan change flows** — Let customers or agents swap subscription variants, change plans, update frequencies, or apply pre-configured upgrade profiles from your own UI.
- **Payment recovery automation** — Detect failed payments and trigger Loop's secure card update email, add or remove backup payment methods, or migrate payment methods programmatically.
- **Churn intelligence dashboard** — Pull cancellation flow logs and export subscription and subscriber summaries to visualize churn reasons, retention offer performance, and cohort LTV for merchants.
- **Loyalty wallet integration** — Credit points on subscription renewals and redeem points against future orders by hooking directly into Loop's customer loyalty point endpoints.

## FAQs

### What authentication does Loop Subscriptions use?

Loop uses API key authentication issued per merchant store. Truto handles secure key storage, injection, and rotation so your end users only complete a simple credential form once during connection.

### Which subscription lifecycle actions are supported?

The full lifecycle is covered: create, pause, resume, cancel, reactivate, expire, reschedule, change plan, update anchor date, adjust prepaid credits, edit charge offset, and bulk update across many subscriptions at once.

### Can we modify a subscriber's next order without a full plan change?

Yes. You can skip the next order, reschedule future orders, place an order immediately, add a one-time line item, swap a line, edit line schedules, or update order notes — all without altering the underlying subscription contract.

### How do we access historical churn and cancellation data?

Use the cancellation flow logs endpoint to retrieve why subscribers canceled and whether they viewed a retention offer, and use the report export endpoints (with status polling) to pull subscription and subscriber summaries in bulk.

### Does the integration support custom subscription and line attributes?

Yes. Truto exposes patch and bulk update endpoints for both subscription-level and line-level custom attributes, so you can read and write metadata your product depends on.

### How fresh is the data we get from Loop?

All reads are fetched on-demand from Loop's API at request time, so data reflects the current state of the merchant's store. For bulk analytics use cases, use the report export endpoints and poll export status until completion.
