# Recharge Documentation > Developer docs and guides to power your custom subscription and recurring billing ecommerce solutions. ## Guides - [Understanding Recharge](https://docs.getrecharge.com/docs/understanding-recharge.md): Recharge is the leading subscription payments solution providing you with an easy way to launch and scale your subscription business. - [Glossary of Recharge terms](https://docs.getrecharge.com/docs/glossary.md): Get familiar with Recharge through the glossary of terms. - [Using the Recharge Checkout with BigCommerce](https://docs.getrecharge.com/docs/how-the-integration-works.md): The Recharge integration with BigCommerce lets you offer subscriptions and recurring billing products on your store. Leverage the robust functionality of the BigCommerce platform and offer customers new ways to purchase their favorite items. - [Join the Recharge Tech Partner Program](https://docs.getrecharge.com/docs/join-the-recharge-tech-partner-program.md) - [Creating a partner app](https://docs.getrecharge.com/docs/partner-apps.md): This guide walks you through creating a partner app for Recharge. - [Tech Partner FAQs](https://docs.getrecharge.com/docs/tech-partner-faqs.md) - [Getting started with Bundles](https://docs.getrecharge.com/docs/bundles-overview.md): Bundles allows you to use one SKU to bundle multiple products to create a “build-your-own-box” experience. Customize the subscription settings to offer bundles as one-time products and/or subscriptions, and include add-ons or extras. - [Pre-filling the bundles widget using query parameters](https://docs.getrecharge.com/docs/bundling-widget-query-params-support.md): This guide covers how you can pre-fill the bundle widget by using query parameters. - [Offering discounts for bundles](https://docs.getrecharge.com/docs/offering-discounts-for-bundles.md): You may want to offer bundle-specific or quantity-based discounts on bundles. By default, dynamically priced bundles will use the subscription or one-time price associated with the bundle selection product. However, you can accomplish custom discounting - bundle discounts or quantity-based discounts - by using the bundle selections API and overriding the price of each bundle selection. - [Customizing legacy Bundles widget layouts](https://docs.getrecharge.com/docs/customizing-the-bundle-widget.md): The one-page and multi-step Bundles widget layouts can be customized to match your storefront’s brand and style. - [Bundling widget events](https://docs.getrecharge.com/docs/bundling-widget-events.md): You can use a custom event to communicate with the bundling widget from an external application. - [Line item properties using bundles](https://docs.getrecharge.com/docs/line-item-properties-using-bundles.md): Learn about line item properties including with each Bundle type. - [Creating a dynamically-priced bundle using the API](https://docs.getrecharge.com/docs/creating-a-dynamically-prcied-bundle-using-the-api.md): Add custom line item properties during checkout to enable Recharge to identify and process dynamically priced bundles. - [Offering Tiered Discounts with a custom bundles widget](https://docs.getrecharge.com/docs/offering-tiered-discounts-with-a-custom-bundles-widget.md) - [Bundles Widget 2.0](https://docs.getrecharge.com/docs/bundles-widget-20.md) - [Using custom CSS and JavaScript for the Bundles 2.0 Widget](https://docs.getrecharge.com/docs/using-custom-css-and-javascript-for-the-bundles-20-widget.md) - [Fix dynamic bundles displaying incorrectly in the cart](https://docs.getrecharge.com/docs/display-dynamic-bundles-as-a-single-item-in-the-cart.md) - [Adding an item to the cart with Ajax](https://docs.getrecharge.com/docs/add-an-item-to-the-cart-with-ajax-shop.md): Learn how to use Ajax to allow customers to add a subscription product to their cart from outside of the product page. - [Diagnosing issues with add-to-cart functionality](https://docs.getrecharge.com/docs/diagnosing-issue-add-to-cart-sci.md): Some Shopify Checkout merchants may be using themes that are incompatible with Recharge. Specifically, they may encounter an issue with adding Recharge subscriptions to their cart, because of the method their theme uses for performing this action. This means that when a customer adds an item to cart, it will be missing Recharge subscription info and/or discounts associated with that subscription option. This guide covers how to diagnose issues with add-to-cart functionality and how to troubleshoot this issue. - [How to update the Subscription Widget using CSS](https://docs.getrecharge.com/docs/how-to-update-the-subscription-widget-using-css.md) - [Open the “Learn More” popup in the Subscription Widget using JavaScript](https://docs.getrecharge.com/docs/open-the-learn-more-popup-in-the-subscription-widget.md) - [Using quick view with the Subscription Widget](https://docs.getrecharge.com/docs/using-quick-view-with-the-subscription-widget.md) - [Using Quantity Upsells with custom widgets](https://docs.getrecharge.com/docs/using-quantity-upsells-with-custom-widgets.md) - [Legacy Javascript Widget](https://docs.getrecharge.com/docs/js-widget.md) - [Adding CSS to the Legacy Javascript Widget in your Shopify theme](https://docs.getrecharge.com/docs/adding-css-to-the-subscription-widget.md): Change the look and feel of the subscription widget by adding CSS rules to your Shopify theme. - [Customizing the Legacy Javascript Widget](https://docs.getrecharge.com/docs/customizing-the-javascript-widget.md): Change the look and feel of the Legacy Javascript Widget using CSS rules. - [Legacy Javascript Widget commands](https://docs.getrecharge.com/docs/widget-commands.md): This guide explains the different functionalities of the Legacy Javascript Widget. - [Advanced widget commands for the Legacy Javascript Widget](https://docs.getrecharge.com/docs/advanced-widget-use-cases.md): You can access additional advanced widget functionality like creating a widget on any page. This is done by accessing the widget's built-in functions. - [Legacy Javascript Widget accessibility](https://docs.getrecharge.com/docs/javascript-subscription-widget-accessibility-updates.md): The Legacy Javascript Widget is continually being enhanced to improve accessibility and better serve users who navigate websites using a keyboard. - [Build a custom Legacy Javascript Widget compatible with Variant-Level Plans](https://docs.getrecharge.com/docs/build-a-custom-widget-compatible-with-product-subscription-plans.md): [Variant Level Plans](https://support.getrecharge.com/hc/en-us/articles/19620274456087-Variant-Level-Plans) allow you flexibility and control over the subscription creation and management experience. - [Getting started with the Recharge API](https://docs.getrecharge.com/docs/api-getting-started.md): The [Recharge API](https://developer.rechargepayments.com/2021-11) lets you use subscription functionality with your existing e-commerce tech stack or platform of choice. - [Recharge API token](https://docs.getrecharge.com/docs/recharge-api-key.md): This guide explains how to generate a Recharge API key to secure API access. - [Middleware expectations in an ecommerce ecosystem](https://docs.getrecharge.com/docs/middleware-expectations-in-an-e-commerce-ecosystem.md): This guide outlines the expectations to follow when building middleware in an ecommerce ecosystem. - [Backend data processing](https://docs.getrecharge.com/docs/backend-data-processing.md): These articles provide guidance for listening to Recharge Webhooks and taking action server-side to process orders or refund orders. You should prioritize keeping your external system in sync with Recharge. - [Submitting an order to an external system](https://docs.getrecharge.com/docs/submitting-an-order.md): Understand how order-specific webhooks are triggered after a Recharge checkout or recurring subscription processes. - [Refund and cancel orders](https://docs.getrecharge.com/docs/cancelling-and-refunding-orders.md): This guide covers how you can cancel or refund orders by syncing refunds processed via Recharge with your external system. - [Add an automatic expiration to subscriptions](https://docs.getrecharge.com/docs/auto-expire-subscriptions.md): Configure subscriptions to automatically expire after a set number of charges. - [Updating cart attributes](https://docs.getrecharge.com/docs/update-cart-attributes.md): This article covers the code you will need to update cart attributes on the cart. - [Swap a subscription product](https://docs.getrecharge.com/docs/swap-a-subscription-product.md): This guide covers how to change the product variant of a subscription. - [Setting up a quarterly subscription](https://docs.getrecharge.com/docs/how-to-set-up-a-quarterly-subscription.md): This guide provides general guidance on how to configure a quarterly subscription on fixed X day of Y-th month - [Convert order injection errors to charge errors](https://docs.getrecharge.com/docs/convert-order-injection-errors-to-charge-errors.md): This guide outlines the steps needed to build an order injection charge error notification system to alleviate order injection errors and raise them as charge errors. - [Checkout](https://docs.getrecharge.com/docs/checkout.md): Understand the different checkout options available for building a custom subscription experience. - [Recharge-hosted checkout](https://docs.getrecharge.com/docs/recharge-hosted-checkout.md): The Recharge-hosted Checkout presents an interface allowing you to process checkouts that will sync into the Recharge system and is the recommended checkout method when using Recharge's API integration. This article covers using Recharge's hosted checkout with your custom integration. Create a checkout experience for customers directing to Recharge’s hosted checkout by using Recharge’s [Checkouts resource](https://developer.rechargepayments.com/2021-11/checkouts). - [Self-hosted checkout](https://docs.getrecharge.com/docs/self-hosted-checkout.md): Host your own checkout to offer customers a more granular checkout experience. - [Third-party checkout](https://docs.getrecharge.com/docs/third-party-checkout.md): Use a third-party checkout experience to process customer orders, and make calls to the Recharge API to configure subscriptions. - [Setting up the auth/capture flow for orders](https://docs.getrecharge.com/docs/setting-up-the-authcapture-flow-for-orders.md): This guide provides the necessary steps to configure an auth/capture flow for orders. - [Customer portal](https://docs.getrecharge.com/docs/custom-customer-portal.md): Build your own customer portal and allow customers the ability to manage their subscriptions from your storefront. - [Build a Recharge-hosted customer portal](https://docs.getrecharge.com/docs/build-a-recharge-hosted-customer-portal.md): Create a custom Recharge-hosted customer portal and give customers complete control over their subscriptions. - [Use the Recharge API to build a custom customer portal](https://docs.getrecharge.com/docs/build-a-custom-customer-portal-with-the-recharge-api.md): Allow customers to manage their subscriptions, update billing information, and see their purchase history with a custom-built portal. - [Custom customer portal tutorials](https://docs.getrecharge.com/docs/custom-customer-portal-tutorials.md): Practice creating a custom customer portal using Postman to understand the requirements of designing a custom portal. - [Using passwordless login for custom customer portals](https://docs.getrecharge.com/docs/using-passwordless-login-for-custom-customer-portals.md) - [Set up Recharge authentication for Shopify Customer Account UI extensions](https://docs.getrecharge.com/docs/set-up-recharge-authentication-for-shopify-customer-account-ui-extensions.md) - [Storefront](https://docs.getrecharge.com/docs/storefront.md) - [Accessing store information from Recharge's CDN on the front-end](https://docs.getrecharge.com/docs/storefront-1.md): Recharge lets you build your subscription widget for fully custom purchasing experience on any site. - [Using platform data to store subscription information](https://docs.getrecharge.com/docs/using-platform-data-to-store-subscription-information.md): Enhance the customer experience and streamline the subscription purchase process using your existing ecommerce platform. - [Understanding common front-end functionality](https://docs.getrecharge.com/docs/understanding-the-common-frontend-functionality.md): Understand the common frontend functionality, and what to expect from each page on the frontend. - [Affinity 1.0](https://docs.getrecharge.com/docs/affinity-legacy.md) - [Understanding the Affinity customer portal](https://docs.getrecharge.com/docs/affinity-customer-portal.md): Save time, reduce churn, and increase retention with the Affinity customer portal. - [Affinity developer workflow](https://docs.getrecharge.com/docs/affinity-developer-workflow.md): There are several factors to consider when making code updates to the Affinity customer portal, including where to host your theme and your customizations, and how to test and deploy your changes.. - [Customizing the Affinity customer portal](https://docs.getrecharge.com/docs/customizing-the-affinity-customer-portal.md) - [Leveraging events in Affinity](https://docs.getrecharge.com/docs/leveraging-events-in-affinity.md) - [Personalizing the user journey in Affinity](https://docs.getrecharge.com/docs/personalizing-the-user-journey-in-affinity.md): Use custom flow extensions to intercept regular customer actions (ie. a customer skips or reschedules an order) and provide tailored experiences - [Adding custom content to Affinity](https://docs.getrecharge.com/docs/adding-custom-content-to-affinity.md): Extend the portal offering with custom extensions placed strategically throughout the portal. - [Using advanced configuration options with Affinity](https://docs.getrecharge.com/docs/using-advanced-configuration-options-with-affinity.md): Use advanced configuration options within Affinity to optimize upsells and improve retention - [Using custom CSS in the Affinity customer portal](https://docs.getrecharge.com/docs/using-custom-css-in-the-affinity-customer-portal.md): Take your Affinity customizations to the next level with custom CSS. - [Preventing customers from canceling specific products in Affinity](https://docs.getrecharge.com/docs/preventing-customer-from-canceling-specific-products-in-affinity.md): Leverage custom code in Affinity to prevent customers from canceling specific products. - [Displaying the Bundles widget on the Affinity overview page](https://docs.getrecharge.com/docs/displaying-the-bundles-widget-on-the-affinity-overview-page.md): Drive build-a-box customers to the portal with unique opportunities on the Affinity overview page - [Affinity extension: Cancel subscription navigation](https://docs.getrecharge.com/docs/affinity-extension-cancel-subscription-navigation.md): Enhance your Affinity customer portal with a smart "Cancel subscription" navigation link that adapts to single and multiple subscriptions. - [Affinity 2.0](https://docs.getrecharge.com/docs/custom-affinity-home-page.md) - [Using custom extensions for Affinity 2.0](https://docs.getrecharge.com/docs/using-custom-extensions-in-the-affinity-page-builder.md) - [Managing the customer account access link](https://docs.getrecharge.com/docs/translate-the-customer-account-access-link.md): You can change the text displayed with the customer account access link, or translate it to a different language. This guide outlines how to customize the account access link text. - [Personalizing the account access page using CSS](https://docs.getrecharge.com/docs/add-css-to-the-account-access-page.md): Use CSS to customize the Account Access page customers access to match the look and feel of your storefront. This guide explains how you can modify the Account Access page to fit the look and feel of your store's brand. - [Adding CSS to the customer account access link](https://docs.getrecharge.com/docs/customize-the-account-access-link.md): This guide explains how you can modify the Account Access link depending on how the link was added to your theme. - [Adding the Manage Subscriptions link to the Shopify customer account on your storefront](https://docs.getrecharge.com/docs/adding-the-manage-subscriptions-link-to-the-customer-account-in-shopify.md): This guide covers how you can add the manage subscriptions link to the customer account. - [Embedding the customer portal within a store using an iFrame](https://docs.getrecharge.com/docs/embed-customer-portal-within-a-store-using-an-iframe.md): Understand how to embed the Recharge customer portal within your BigCommerce store. - [Updating Custom Portals for Shopify Markets compatiblity](https://docs.getrecharge.com/docs/updating-custom-portals-for-shopify-markets-compatiblity.md) - [How-to create a Paid Membership Program using Recharge with Shopify Flow](https://docs.getrecharge.com/docs/how-to-create-a-paid-membership-program-using-recharge-with-shopify-flow.md): Learn how to leverage Recharge with Shopify Flow to build a membership tagging program. - [Building custom customer experiences with the Theme Engine](https://docs.getrecharge.com/docs/building-custom-customer-experiences-with-the-theme-engine.md) - [Adding cursor pagination to Novum](https://docs.getrecharge.com/docs/adding-cursor-pagination-to-novum.md): This guide will walk you through adding cursor pagination in Novum. - [Adding an Order Now button using the Recharge Theme Engine](https://docs.getrecharge.com/docs/adding-an-order-now-button-using-the-recharge-theme-engine.md): Use the Recharge Theme Engine to add an Order Now button to the customer portal. - [Adding one-time products to existing subscriptions with the Recharge Theme Engine](https://docs.getrecharge.com/docs/adding-one-time-products-to-existing-subscriptions-with-the-recharge-theme-engine.md): Allow customers to add one-time products to their subscriptions through the customer portal using the Recharge Theme Engine. - [Getting started with discounts](https://docs.getrecharge.com/docs/discounts-overview.md): Recharge discounts empower merchants to offer incentives to both their current and potential customers. - [Understanding discounts](https://docs.getrecharge.com/docs/in-depth.md): Learn the different ways you can create and apply discount codes to enhance the shopping experience. - [Implementing commonly used discounts](https://docs.getrecharge.com/docs/discounts-use-cases.md): Leverage commonly used discount opportunities to engage customers, reduce churn, and increase LTV. - [Using Shopify Flow to identify subscription orders](https://docs.getrecharge.com/docs/using-shopify-flow-to-identify-subscription-products.md): Learn how to tag and identify subscription products by leveraging Recharge with Shopify Flow. - [Offering subscriptions for specific variants](https://docs.getrecharge.com/docs/offer-subscription-purchase-for-variants.md): Understand how to provide customers with different subscription options for product variants. - [Updating subscriptions in bulk using the Theme Engine](https://docs.getrecharge.com/docs/updating-subscriptions-in-bulk-using-the-theme-engine.md): Manage subscriptions in bulk using the Recharge Theme Engine. - [Using Gift subscriptions with Shopify 1.0 themes](https://docs.getrecharge.com/docs/using-gift-subscriptions-with-shopify-10-themes.md): Gift subscriptions provide an option for your customers to gift subscriptions and is designed to work with 2.0 Shopify themes. - [Custom coding the Gift subscriptions widget for Shopify 2.0 themes](https://docs.getrecharge.com/docs/custom-coding-the-gift-subscriptions-widget-for-shopify-20-themes.md): Shopify 2.0 themes typically use drag-and-drop app blocks, where you can drop the Recharge gifting widget onto the product page when configuring your theme in Shopify. You can custom code the widget into your theme if you cannot access the App Block, which happens occasionally for themes that have been customized. - [Deprecation Notice: /products v.2021-01](https://docs.getrecharge.com/docs/deprecation-notice-products-v2021-01.md) - [Understanding selling plan IDs](https://docs.getrecharge.com/docs/understanding-selling-plan-ids.md) - [Recharge API values](https://docs.getrecharge.com/docs/our-values.md) - [Storefront API and JS SDK](https://docs.getrecharge.com/docs/storefront-api-and-js-sdk.md): With storefront access, the [Recharge JS SDK](https://storefront.rechargepayments.com/client/docs/category/getting-started/) was created to offer full coverage of common needs and uses the storefront API to improve the developer experience. - [Create an API request](https://docs.getrecharge.com/docs/authentication.md): Create an API request to the Recharge API. - [Using cursor pagination with the Recharge API](https://docs.getrecharge.com/docs/using-cursor-pagination-with-the-recharge-api.md): Understand how cursor pagination works with the Recharge API. - [API standards](https://docs.getrecharge.com/docs/api-standards.md): From version `2021-11` onwards, Recharge abides by a set of standards across all resources and API endpoints. This helps provide a consistent and intuitive experience for developers. - [API security](https://docs.getrecharge.com/docs/api-security.md): This article provides a list of standards Recharge follows, and best practices that are recommended to users of the Recharge API. - [API rate limits](https://docs.getrecharge.com/docs/api-rate-limits.md): Rate Limiting (also known as “throttling”) is the process by which we intentionally limit the number of API requests that can be processed at any given time. By instituting rate limits, we can ensure the overall stability of the system, while also making sure that the API is protected from abuse. - [API versions](https://docs.getrecharge.com/docs/api-versions.md): API versioning at Recharge - [API resources](https://docs.getrecharge.com/docs/endpoints.md) - [Addresses](https://docs.getrecharge.com/docs/addresses.md): An Addresses record represents a shipping address. This article covers more information about how this record works. - [Charges](https://docs.getrecharge.com/docs/charges.md): Understand how charges work alongside subscriptions. - [Checkouts](https://docs.getrecharge.com/docs/checkouts.md): Use the Checkouts resource when creating subscription orders using Recharge's [Custom integration](api-getting-started) to compile and send an order to Recharge for processing. - [Customers](https://docs.getrecharge.com/docs/customers.md): Understand how Recharge create and records customers when they check out with a subscription product. - [Customer delivery schedule](https://docs.getrecharge.com/docs/customer-delivery-schedule.md): Recurring commerce offers the ability for merchants to foresee (to a certain extent) the future orders of their customers. Recharge Customer Delivery Schedule offers merchants the ability to pull a customer’s upcoming order information and synthesized/projected data, which they can in turn surface to their own customers or leverage for optimized administration. - [Discounts](https://docs.getrecharge.com/docs/discounts.md): Implement various types of discounts, apply them to customer addresses, and manage discount rules. - [Metafields](https://docs.getrecharge.com/docs/metafields.md): Metafields allow you to add additional attributes to certain Recharge API resources. - [One-times](https://docs.getrecharge.com/docs/onetimes.md): Customers can add on a single item to their purchase, in addition to ongoing subscriptions with one-time products. - [Orders](https://docs.getrecharge.com/docs/orders.md): Orders contain information about the line items in an order, the corresponding Recharge subscription ID for the order, and IDs for a corresponding order if one is created on an external ecommerce platform. - [Payments](https://docs.getrecharge.com/docs/single-payment-method-vs-multiple-payment-methods.md): Understand how the Recharge Payment method works. - [Products](https://docs.getrecharge.com/docs/products.md): Products are the items tied to a subscription in Recharge. - [Subscriptions](https://docs.getrecharge.com/docs/subscriptions.md): Subscriptions represent individual items a customer receives on a recurring basis. Subscriptions are the core resources of the Recharge API. - [Using webhooks](https://docs.getrecharge.com/docs/webhooks-overview.md): Webhooks notify you about events happening within Recharge. They can feed data into your client-side application that you can use to take action. Webhooks deliver data about events like customers adding an item to cart, subscription cancellations and other specific events in real-time. - [Async batches](https://docs.getrecharge.com/docs/async-batches.md) - [Async batch tasks 2021-11](https://docs.getrecharge.com/docs/async-batches-2021-11.md): Async batch contains all the setups information and status update of a batch of operation to be performed collectively. - [Async batch tasks 2021-01](https://docs.getrecharge.com/docs/async-batches-2021-01-1.md): Async batch contains all the setups information and status update of a batch of operation to be performed collectively. - [Webhooks resources](https://docs.getrecharge.com/docs/webhooks-resources.md) - [Webhook examples 2021-01](https://docs.getrecharge.com/docs/webhook-payload-examples.md): This page is dedicated to providing payload examples for Recharge webhooks endpoints. - [Webhook examples 2021-11](https://docs.getrecharge.com/docs/webhooks-examples-2021-11.md): This page is dedicated to providing payload examples for Recharge webhooks endpoints. - [Webhooks troubleshooting guide](https://docs.getrecharge.com/docs/webhooks-troubleshooting-guide.md): Troubleshooting guide when using webhooks. - [Adding the customer portal link to your BigCommerce storefront](https://docs.getrecharge.com/docs/add-customer-portal-link-to-a-theme.md): This guide explains how you can insert the Recharge customer portal link on your BigCommerce storefront. - [Adding the Recharge subscription widget to a BigCommerce theme](https://docs.getrecharge.com/docs/adding-the-subscription-widget-to-a-custom-theme.md): Learn how to add the subscription widget to unsupported themes. - [Understanding the BigCommerce cart page](https://docs.getrecharge.com/docs/cart.md): The cart displays the type of product to be purchased, such as the subscription frequency of each product and the order total. - [Customizing the BigCommerce front-end with JavaScript](https://docs.getrecharge.com/docs/javascript-customization.md): Use JavaScript to achieve further customizations with the BigCommerce integration. - [Available front-end objects for the Recharge Checkout on BigCommerce](https://docs.getrecharge.com/docs/available-front-end-objects.md) - [Sending a product with a Text Modifier option to Checkout for the Recharge Checkout on BigCommerce](https://docs.getrecharge.com/docs/send-a-product-with-a-text-modifier-to-checkout.md): On BigCommerce, text modifiers let customers enter information as a way to customize the product. The main use for this is product personalization, i.e., adding a name or initials to the product. See [Text/Number Fields](https://support.bigcommerce.com/s/article/Product-Options-v3?language=en_US#text-field) to learn more. This guide explains how to pass this product data from the product display page to a Recharge Checkout. - [Customizing the subscription widget for BigCommerce stores](https://docs.getrecharge.com/docs/customizing-the-subscription-widget-for-bigcommerce-stores.md): This article covers how the subscription widget works on BigCommerce, disabling the frontend widget styling, and how to load data from the store CDN for customization. - [Creating an "Add-to-cart" button from a category page for the Recharge Checkout on BigCommerce](https://docs.getrecharge.com/docs/create-an-add-to-cart-button-from-a-category-page.md): An add to cart button from a category page can be useful when customers are ready to add a subscription to cart without clicking all the way into the product page. - [Customizing cart elements and the checkout for the Recharge Checkout on BigCommerce](https://docs.getrecharge.com/docs/customizing-cart-elements-and-checkout.md): You can customize the presentation of cart information by adding or hiding certain Recharge cart CSS elements.