# Chaching API Chaching is a modern subscription-billing platform designed to simplify product management, customer lifecycle workflows, and recurring payments. It combines a clean dashboard for business users with a powerful API built for developers who need full automation and control. Version: 1.0 ## Download OpenAPI description [Chaching API](https://chaching.redocly.app/_bundle/Developer%20Guide/api.yaml) ## Customers This object represents a customer of your business. Use it to create recurring charges, save payment and contact information, and track payments that belong to the same customer. ### Creates a new customer - [POST /customers](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_create.md): Creates a new customer for the authenticated account with the provided details. ### Get paginated list of customers - [GET /customers](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_getallbyaccount.md): Retrieves a paginated list of customers associated with the authenticated account. ### Search customers by name or email - [GET /customers/search](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_search.md): Searches for customers associated with the authenticated account based on a search string that matches their name or email. ### Get customer details by External Key - [GET /customers/{externalKey}](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_getdetails.md): Retrieves detailed information about a specific customer using their External Key. ### Update customer details by External Key - [PATCH /customers/{externalKey}](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_update.md): Updates the details of a specific customer using their External Key and the provided update data. ### Delete a customer by External Key - [DELETE /customers/{externalKey}](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_remove.md): Deletes a specific customer associated with the authenticated account using their External Key. ### List customer payment methods - [GET /customers/{externalKey}/payment-methods](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_getpaymentmethods.md): Retrieves a paginated list of all payment methods associated with a specific customer. ### Get customer payment method details - [GET /customers/{externalKey}/payment-methods/{id}](https://chaching.redocly.app/developer-guide/api/customers/customerscontroller_getpaymentmethod.md): Retrieves detailed information about a specific payment method associated with a customer. ## Products Products describe the specific goods or services you offer to your customers. For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product. ### Get tax codes with category names - [GET /products/taxCodes](https://chaching.redocly.app/developer-guide/api/products/productscontroller_gettaxescodes.md): Retrieves a list of tax codes with their associated category names. Optionally filter by search term. ### List all products - [GET /products](https://chaching.redocly.app/developer-guide/api/products/productscontroller_listallproducts.md): Retrieves a paginated list of all products for the authenticated account. Supports pagination and search functionality. ### Create a product - [POST /products](https://chaching.redocly.app/developer-guide/api/products/productscontroller_createproduct.md): Creates a new product with the specified details. The product name must be unique and follow specific naming conventions. ### Retrieve a product - [GET /products/{id}](https://chaching.redocly.app/developer-guide/api/products/productscontroller_retrieveproduct.md): Retrieves details of a specific product by its unique identifier. ### Update a product - [PATCH /products/{id}](https://chaching.redocly.app/developer-guide/api/products/productscontroller_updateproduct.md): Updates an existing product with the specified details. Only provided fields will be updated. ### Delete a product - [DELETE /products/{id}](https://chaching.redocly.app/developer-guide/api/products/productscontroller_deleteproduct.md): Permanently deletes a product. This action cannot be undone. ## Transactions Transactions represent the payments and charges made by your customers. ### List all transactions - [GET /transactions](https://chaching.redocly.app/developer-guide/api/transactions/transactionscontroller_gettransactions.md): Retrieves a list of transactions for the current account, based on the authentication that was used to make the request. ### Retrieve a transaction - [GET /transactions/{id}](https://chaching.redocly.app/developer-guide/api/transactions/transactionscontroller_gettransaction.md): Retrieves detailed information about a specific transaction for the current account, based on the authentication that was used to make the request. ## Invoices Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription. ### List all invoices - [GET /invoices](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_listinvoices.md): Retrieves a paginated list of all invoices for the authenticated account. Supports pagination and filtering. ### Create an invoice - [POST /invoices](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_createinvoice.md): Creates a new invoice for a customer. The invoice will include line items, pricing, taxes, and other billing information. The invoice will be in draft status until paid or committed. ### Retrieve an invoice - [GET /invoices/{id}](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_retrieveinvoice.md): Retrieves a specific invoice by its unique identifier, including all invoice details, line items, and payment information. ### Pay an invoice - [PUT /invoices/{id}](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_payinvoice.md): Pays an invoice. This action will attempt to charge the customer using the payment method on file and finalize the invoice. ### Void an invoice - [DELETE /invoices/{id}](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_voidinvoice.md): Voids a draft or open invoice. A voided invoice cannot be paid and is marked as cancelled. This action is irreversible. ### List invoice transactions - [GET /invoices/{id}/transactions](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_gettransactions.md): Retrieves a paginated list of all transactions associated with a specific invoice, including payment attempts, refunds, and adjustments. ### Retrieve invoice transaction - [GET /invoices/{id}/transactions/{transactionId}](https://chaching.redocly.app/developer-guide/api/invoices/invoicescontroller_gettransaction.md): Retrieves detailed information about a specific transaction associated with an invoice. ## TaxRates TaxRates allow you to calculate the tax to collect from your customer. ### List all tax rates - [GET /taxRates](https://chaching.redocly.app/developer-guide/api/taxrates/taxescontroller_findall.md): Retrieves a paginated list of all tax rates for the authenticated account. Supports pagination and filtering. ### Create a tax rate - [POST /taxRates](https://chaching.redocly.app/developer-guide/api/taxrates/taxescontroller_createtaxrate.md): Creates a new tax rate for the authenticated account. Tax rates define the percentage of tax to be applied to transactions. ### Retrieve a tax rate - [GET /taxRates/{id}](https://chaching.redocly.app/developer-guide/api/taxrates/taxescontroller_retrievetaxrate.md): Retrieves a specific tax rate by its unique identifier. ### Update a tax rate - [PATCH /taxRates/{id}](https://chaching.redocly.app/developer-guide/api/taxrates/taxescontroller_updatetaxrate.md): Updates an existing tax rate by its unique identifier. Only the provided fields will be updated. ## Prices This object represents a price in your Chaching account. Use it to define the cost of your products, configure one-time or recurring billing intervals, specify tax behavior, and manage pricing updates or deactivations for your offerings. ### List all prices - [GET /prices](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_listallprices.md): Retrieves a paginated list of all prices for the authenticated account. Supports pagination and search functionality. ### Retrieve a price - [GET /prices/{id}](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_retrieveprice.md): Retrieves details of a specific price by its unique identifier. ### Create a price for a product - [POST /prices/{id}](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_createprice.md): Creates a new price for an existing product. The price can be one-time or recurring (subscription-based). ### Delete a price - [DELETE /prices/{id}](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_deleteprice.md): Permanently deletes a price. This action cannot be undone. Active prices associated with active subscriptions should be deactivated instead of deleted. ### Update an inactive price - [PATCH /prices/{id}/inactive](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_updateinactiveprice.md): Updates an inactive price with new details. Only inactive prices can be fully updated with this endpoint. ### Update an active price - [PATCH /prices/{id}/active](https://chaching.redocly.app/developer-guide/api/prices/pricescontroller_updateactiveprice.md): Updates metadata of an active price. Only the description field can be modified for active prices to maintain billing consistency. ## Subscriptions Subscriptions are a way to charge your customers on a recurring basis. They can be used for products or services that are delivered over time, such as memberships or software licenses. ### List all subscriptions - [GET /subscriptions](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_listsubscriptions.md): Retrieves a paginated list of all subscriptions for the authenticated account. Supports pagination and filtering. ### Create a subscription - [POST /subscriptions](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_createsubscription.md): Creates a new subscription for a customer. The subscription will include product items, pricing, and billing information. ### Retrieve a subscription - [GET /subscriptions/{id}](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_retrievesubscription.md): Retrieves a specific subscription by its unique identifier. ### Update a subscription - [PATCH /subscriptions/{id}](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_updatesubscription.md): Updates an existing subscription by its unique identifier. Can modify items, pricing, billing information, and other subscription details. ### Cancel a subscription - [DELETE /subscriptions/{id}](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_cancelsubscription.md): Cancels an active subscription. The subscription will be terminated immediately or at the end of the current billing period based on configuration. ### Pause a subscription - [POST /subscriptions/{id}/pause](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_pausesubscription.md): Pauses an active subscription. No charges will be made while the subscription is paused. The subscription can be resumed later. ### Resume a subscription - [POST /subscriptions/{id}/resume](https://chaching.redocly.app/developer-guide/api/subscriptions/subscriptionscontroller_resumesubscription.md): Resumes a paused subscription. Billing will continue from where it was paused, and the subscription will be active again. ## Balance Balances represent the amount of money in your account. You can use balances to track your income and expenses, and to make payments to your customers or vendors. ### Retrieve balance - [GET /balance](https://chaching.redocly.app/developer-guide/api/balance/balancecontroller_getbalance.md): Retrieves the current account balance, based on the authentication that was used to make the request. ## Payment Methods Payment Methods represent a way to collect payment from your customers. They can be attached to customers to make charging easier and more efficient. ### List all payment methods - [GET /payment-methods](https://chaching.redocly.app/developer-guide/api/payment-methods/paymentmethodscontroller_getpaymentmethods.md): Retrieves a list of payment methods for the current account, based on the authentication that was used to make the request. ### Retrieve a payment method - [GET /payment-methods/{id}](https://chaching.redocly.app/developer-guide/api/payment-methods/paymentmethodscontroller_getpaymentmethod.md): Retrieves detailed information about a specific payment method for the current account, based on the authentication that was used to make the request. ### Attach a payment method - [POST /payment-methods/{id}/attach](https://chaching.redocly.app/developer-guide/api/payment-methods/paymentmethodscontroller_attachpaymentmethod.md): Attaches a payment method to a customer for the current account, based on the authentication that was used to make the request. ### Detach a payment method - [POST /payment-methods/{id}/detach](https://chaching.redocly.app/developer-guide/api/payment-methods/paymentmethodscontroller_detachpaymentmethod.md): Detaches a payment method from a customer for the current account, based on the authentication that was used to make the request.