# Recharge API > REST API reference for Recharge, the subscription platform. Latest version: 2021-11. Base URL: https://api.rechargeapps.com. Authenticate with the X-Recharge-Access-Token header and select a version with X-Recharge-Version. ## Machine-readable - [OpenAPI 2021-11](/openapi/2021-11.json): OpenAPI 3.1 description of version 2021-11 - [OpenAPI 2021-01](/openapi/2021-01.json): OpenAPI 3.1 description of version 2021-01 ## Topics - [Introduction](/2021-11) - [Authentication](/2021-11/authentication) - [Versioning](/2021-11/versioning) - [Responses](/2021-11/responses) - [Extending responses](/2021-11/extending_responses) - [Cursor pagination](/2021-11/cursor_pagination) - [Sorting](/2021-11/sorting) ## Core Resources - [Addresses](/2021-11/addresses): An Addresses record represents a shipping address. Each customer can have multiple addresses. Subscriptions are a child object of an address. - [Create an address](/2021-11/addresses#create_address): POST /addresses - [Retrieve an address](/2021-11/addresses#retrieve_address): GET /addresses/{id} - [Update an address](/2021-11/addresses#update_address): PUT /addresses/{id} - [Delete an address](/2021-11/addresses#delete_address): DELETE /addresses/{id} - [List addresses](/2021-11/addresses#list_addresses): GET /addresses - [Merge addresses](/2021-11/addresses#merge_addresses): POST /addresses/merge - [Skip future charge](/2021-11/addresses#skip_future_charge_address): POST /addresses/{id}/charges/skip - [Bundle Selections](/2021-11/bundle_selections): A bundle selection represents the contents within a Bundle linked to an individual Subscription. It can represent the selection for upcoming orders or past orde - [List bundle selections](/2021-11/bundle_selections#bundle_selection_list): GET /bundle_selections - [Retrieve a bundle selection](/2021-11/bundle_selections#bundle_selection_retrieve): GET /bundle_selections/{id} - [Create a bundle selection](/2021-11/bundle_selections#bundle_selection_create): POST /bundle_selections - [Update a bundle selection](/2021-11/bundle_selections#bundle_selection_update): PUT /bundle_selections/{id} - [Delete a bundle selection](/2021-11/bundle_selections#bundle_selection_delete): DELETE /bundle_selections/{id} - [Charges](/2021-11/charges): A charge is the representation of a financial transaction linked to the purchase of an item (past or future). It can be a transaction that was processed already - [Retrieve a charge](/2021-11/charges#charge_retrieve): GET /charges/{id} - [List charges](/2021-11/charges#charge_list): GET /charges - [Apply a discount](/2021-11/charges#apply_discount): POST /charges/{id}/apply_discount - [Remove a discount](/2021-11/charges#remove_discount): POST /charges/{id}/remove_discount - [Skip a charge](/2021-11/charges#charge_skip): POST /charges/{id}/skip - [Unskip a charge](/2021-11/charges#charge_unskip): POST /charges/{id}/unskip - [Refund a charge](/2021-11/charges#charge_refund): POST /charges/{id}/refund - [Process a charge](/2021-11/charges#charge_process): POST /charges/{id}/process - [Capture a charge](/2021-11/charges#charge_capture): POST /charges/{id}/capture_payment - [Add a free gift](/2021-11/charges#charge_add_free_gift): POST /charges/{id}/add_free_gift - [Remove a free gift](/2021-11/charges#charge_remove_free_gift): POST /charges/{id}/remove_free_gift - [Checkouts](/2021-11/checkouts): Checkouts allow you to create, update, and process a Checkout programmatically. Shipping cost and sales tax determination are automatic functions of the Recharg - [Create a checkout](/2021-11/checkouts#checkout_create): POST /checkouts - [Retrieve a checkout](/2021-11/checkouts#checkout_retrieve): GET /checkouts/{token} - [Update a checkout](/2021-11/checkouts#checkout_update): PUT /checkouts/{token} - [Retrieve shipping rates](/2021-11/checkouts#checkout_retrieve_shipping_address): GET /checkouts/{token}/shipping_rates - [Process a checkout](/2021-11/checkouts#checkout_process): POST /checkouts/{token}/charge - [Collections](/2021-11/collections): Collections allow to create and manage a logical list of Products called a Collection . A Collection contains an ordered list of Products and can be used for se - [Create a collection](/2021-11/collections#collection_create): POST /collections - [Retrieve a collection](/2021-11/collections#collection_retrieve): GET /collections/{id} - [Update a collection](/2021-11/collections#collection_update): PUT /collections/{id} - [Delete a collection](/2021-11/collections#collection_delete): DELETE /collections/{id} - [List collections](/2021-11/collections#collections_list): GET /collections - [List collections products](/2021-11/collections#collection_products): GET /collection_products - [Add collection products](/2021-11/collections#collection_products_add): POST /collections/{id}/collection_products-bulk - [Delete collection products](/2021-11/collections#collection_products_delete): DELETE /collections/{id}/collection_products-bulk - [Credits](/2021-11/credits): The Credit Account object represents a set of positive and negative credit adjustments that when summed equal an available balance. Credit accounts may not have - [Create a credit account](/2021-11/credits#credit_account_create): POST /credit_accounts - [Retrieve a credit account](/2021-11/credits#credit_account_retrieve): GET /credit_accounts/{id} - [Update a credit account](/2021-11/credits#credit_account_update): PUT /credit_accounts/{id} - [List credit accounts](/2021-11/credits#credit_account_list): GET /credit_accounts - [Create a credit adjustment](/2021-11/credits#credit_adjustment_create): POST /credit_accounts/{id}/credit_adjustments - [List Credit Adjustments for a Credit Account](/2021-11/credits#credit_adjustment_retrieve_by_credit_account): GET /credit_accounts/{id}/credit_adjustments - [List credit adjustments](/2021-11/credits#credit_adjustment_list): GET /credit_adjustments - [Customers](/2021-11/customers): The Customer object holds account information. Email is unique on the Customer ; no two customers for a store can have the same email. Address is a child of the - [Create a customer](/2021-11/customers#customers_create): POST /customers - [Retrieve a customer](/2021-11/customers#customers_retrieve): GET /customers/{id} - [Update a customer](/2021-11/customers#customers_update): PUT /customers/{id} - [Delete a customer](/2021-11/customers#customers_delete): DELETE /customers/{id} - [List customers](/2021-11/customers#customers_list): GET /customers - [Retrieve a customer delivery schedule](/2021-11/customers#customer_delivery_schedule): GET /customers/{id}/delivery_schedule - [Retrieve a customer's credit summary](/2021-11/customers#customer_credit_summary): GET /customers/{id}/credit_summary - [Discounts](/2021-11/discounts): Discounts can be applied to a Checkout , or can be applied directly to an Address . Depending on configuration they allow for single use, or recurring discounts - [Create a discount](/2021-11/discounts#discounts_create): POST /discounts - [Retrieve a discount](/2021-11/discounts#discounts_retrieve): GET /discounts/{id} - [Update a discount](/2021-11/discounts#discounts_update): PUT /discounts/{id} - [Delete a discount](/2021-11/discounts#discounts_delete): DELETE /discounts/{id} - [List discounts](/2021-11/discounts#discounts_list): GET /discounts - [Entitlements](/2021-11/customer_entitlements): A Customer Entitlement represents access to a specific entitlement feature granted to a customer, typically driven by an active subscription. While you own and - [List customer entitlements](/2021-11/customer_entitlements#list_customer_entitlements): GET /customer_entitlements - [Create a customer entitlement](/2021-11/customer_entitlements#create_customer_entitlement): POST /customer_entitlements - [Update a customer entitlement](/2021-11/customer_entitlements#update_customer_entitlement): PUT /customer_entitlements/{id} - [Delete a customer entitlement](/2021-11/customer_entitlements#delete_customer_entitlement): DELETE /customer_entitlements/{id} - [Metafields](/2021-11/metafields): Metafields allow users to add additional information to other resources. They can be used for adding custom fields to objects, and are useful for storing specia - [Create a metafield](/2021-11/metafields#metafields_create): POST /metafields - [Retrieve a metafield](/2021-11/metafields#metafields_retrieve): GET /metafields/{id} - [Update a metafield](/2021-11/metafields#metafields_update): PUT /metafields/{id} - [Delete a metafield](/2021-11/metafields#metafields_delete): DELETE /metafields/{id} - [List metafields](/2021-11/metafields#metafields_list): GET /metafields - [Notifications](/2021-11/notifications): The Customer Notifications resource is used to dispatch email notifications to customers within Recharge. The endpoint uses your configured Recharge email templ - [Send email notification](/2021-11/notifications#notifications_send): POST /customers/{id}/notifications - [Onetimes](/2021-11/onetimes): Onetimes represent non-recurring line items on a QUEUED Charge . - [Create a onetime](/2021-11/onetimes#onetimes_create): POST /onetimes - [Retrieve a onetime](/2021-11/onetimes#onetimes_retrieve): GET /onetimes/{id} - [Update a onetime](/2021-11/onetimes#onetimes_update): PUT /onetimes/{id} - [Delete a onetime](/2021-11/onetimes#onetimes_delete): DELETE /onetimes/{id} - [List onetimes](/2021-11/onetimes#onetimes_list): GET /onetimes - [Orders](/2021-11/orders): An order is created after a Charge is successfully processed. The Order contains all the same json data as the Charge . In case of a prepaid order creation, the - [Retrieve an order](/2021-11/orders#orders_retrieve): GET /orders/{id} - [Clone an order](/2021-11/orders#orders_clone): POST /orders/{id}/clone - [Delay an order](/2021-11/orders#orders_delay): POST /orders/{id}/delay - [Update an order](/2021-11/orders#orders_update): PUT /orders/{id} - [Delete an order](/2021-11/orders#orders_delete): DELETE /orders/{id} - [List orders](/2021-11/orders#orders_list): GET /orders - [Payment methods](/2021-11/payment_methods): The Payment Method object holds payment and billing information. A Customer may be associated with many Payment Methods , and an Addresses record must be associ - [Create a payment method](/2021-11/payment_methods#payment_methods_create): POST /payment_methods - [Retrieve a payment method](/2021-11/payment_methods#payment_methods_retrieve): GET /payment_methods/{id} - [Update a payment method](/2021-11/payment_methods#payment_methods_update): PUT /payment_methods/{id} - [Delete a payment method](/2021-11/payment_methods#payment_methods_delete): DELETE /payment_methods/{id} - [List payment methods](/2021-11/payment_methods#payment_methods_list): GET /payment_methods - [Plans](/2021-11/plans): The Plans resource is used to create and configure the transactional options for the Product (subscription, prepaid, and onetime purchase options) in Recharge. - [Create a plan](/2021-11/plans#plans_create): POST /plans - [Update a plan](/2021-11/plans#plans_update): PUT /plans/{id} - [Delete a plan](/2021-11/plans#plans_delete): DELETE /plans/{id} - [List plans](/2021-11/plans#plans_list): GET /plans - [Bulk create plans](/2021-11/plans#plans_bulk_create): POST /products/{external_product_id}/plans-bulk - [Bulk update plans](/2021-11/plans#plans_bulk_update): PUT /products/{external_product_id}/plans-bulk - [Bulk delete plans](/2021-11/plans#plans_bulk_delete): DELETE /products/{external_product_id}/plans-bulk - [Products](/2021-11/products): Representation of the Products from your catalog in Recharge. - [Create a product](/2021-11/products#products_create): POST /products - [Retrieve a product](/2021-11/products#products_retrieve): GET /products/{external_product_id} - [Update a product](/2021-11/products#products_update): PUT /products/{external_product_id} - [Delete a product](/2021-11/products#products_delete): DELETE /products/{external_product_id} - [List products](/2021-11/products#products_list): GET /products - [Store](/2021-11/store): The store endpoint includes ReCharge settings and other store specific information. - [Retrieve a store](/2021-11/store#store_retrieve): GET /store - [Subscriptions](/2021-11/subscriptions): Subscriptions are individual items a customer receives on a recurring basis. A Subscription is a Product added to an Address . - [Create a subscription](/2021-11/subscriptions#subscriptions_create): POST /subscriptions - [Retrieve a subscription](/2021-11/subscriptions#subscriptions_retrieve): GET /subscriptions/{id} - [Update a subscription](/2021-11/subscriptions#subscriptions_update): PUT /subscriptions/{id} - [Delete a subscription](/2021-11/subscriptions#subscriptions_delete): DELETE /subscriptions/{id} - [List subscriptions](/2021-11/subscriptions#subscriptions_list): GET /subscriptions - [Change a subscription next charge date](/2021-11/subscriptions#subscriptions_change_next_charge): POST /subscriptions/{id}/set_next_charge_date - [Change a subscription address](/2021-11/subscriptions#subscriptions_change_address): POST /subscriptions/{id}/change_address - [Cancel a subscription](/2021-11/subscriptions#subscriptions_cancel): POST /subscriptions/{id}/cancel - [Activate a subscription](/2021-11/subscriptions#subscriptions_activate): POST /subscriptions/{id}/activate - [Gift a skipped subscription](/2021-11/subscriptions#subscriptions_skip_gift): POST /subscriptions/skip_gift ## Webhooks - [Webhook endpoints](/2021-11/webhooks_endpoints): Webhooks are a mechanism for reacting to specific events that are triggered in the Recharge system. For example, a checkout completion, a customer activation or - [Create a webhook](/2021-11/webhooks_endpoints#webhooks_create): POST /webhooks - [Retrieve a webhook](/2021-11/webhooks_endpoints#webhooks_retrieve): GET /webhooks/{id} - [Update a webhook](/2021-11/webhooks_endpoints#webhooks_update): PUT /webhooks/{id} - [Delete a webhook](/2021-11/webhooks_endpoints#webhooks_delete): DELETE /webhooks/{id} - [List webhooks](/2021-11/webhooks_endpoints#webhooks_list): GET /webhooks - [Test webhooks](/2021-11/webhooks_endpoints#webhooks_test): POST /webhooks/{id}/test - [Webhooks explained](/2021-11/webhooks_explained) - [Webhook validation](/2021-11/webhooks_validation) ## Async Batch - [Async batch Endpoints](/2021-11/async_batch_endpoints): The Async batches API can be used for processing large volumes of operations asynchronously, in order to reduce aggregate processing time and network traffic wh - [Create a batch](/2021-11/async_batch_endpoints#async_batch_endpoints_create): POST /async_batches - [Retrieve a batch](/2021-11/async_batch_endpoints#async_batch_endpoints_retrieve): GET /async_batches/{id} - [List batches](/2021-11/async_batch_endpoints#async_batch_endpoints_list): GET /async_batches - [Process a batch](/2021-11/async_batch_endpoints#async_batch_endpoints_process): POST /async_batches/{batch_id}/process - [Async batch Tasks](/2021-11/async_batch_tasks): Most commonly, the response from listing tasks on an async_batch id will be identical to the body of a singular request to standard Recharge API endpoints. Howe - [Create a batch task](/2021-11/async_batch_tasks#async_batch_tasks_create): POST /async_batches/{batch_id}/tasks - [List batch tasks](/2021-11/async_batch_tasks#async_batch_tasks_retrieve): GET /async_batches/{batch_id}/tasks ## Admin Resources - [Token information](/2021-11/token_information): This resource allows a caller to inspect basic information regarding the token in use. It will only return a single object related to the calling token ( ie - a - [Retrieve token information](/2021-11/token_information#token_information_retrieve): GET /token_information - [Accounts](/2021-11/accounts): This resource allows a caller to inspect basic information regarding the staff accounts in the store. - [Retrieve an account](/2021-11/accounts#account_retrieve): GET /accounts/{id} - [List accounts](/2021-11/accounts#accounts_list): GET /accounts - [Events](/2021-11/events): This resource allows a caller to inspect recent events in the store. - [List events](/2021-11/events#events_list): GET /events