Skip to content

Chaching API (1.0)

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.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://chaching.redocly.app/_mock/developer-guide/api

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.

Operations

Creates a new customer

Request

Creates a new customer for the authenticated account with the provided details.

Headers
cc-api-keystringrequired

Chaching API Key

Bodyapplication/jsonrequired
namestringrequired

The full name or business name of the customer.

Example: "John Doe"
emailstring

The customer’s email address.

Example: "john.doe@example.com"
descriptionstring

An arbitrary string attached to the object. Often useful for displaying to users.

Example: "My First Test Customer"
phonestring

The customer’s phone number.

Example: null
currencystring

Three-letter ISO currency code

Example: "USD"
addressArray of objects(Address)

The customer’s address.

shippingobject

The customer’s shipping information. Appears on invoices emailed to this customer.

curl -i -X POST \
  https://chaching.redocly.app/_mock/developer-guide/api/customers \
  -H 'Content-Type: application/json' \
  -H 'cc-api-key: string' \
  -d '{
    "name": "John Doe",
    "email": "john.doe@example.com",
    "description": "My First Test Customer",
    "phone": null,
    "currency": "USD",
    "address": [
      {
        "city": "San Francisco",
        "country": "US",
        "line1": "123 Market St",
        "line2": "Apt 4B",
        "postal_code": "94103",
        "state": "CA"
      }
    ],
    "shipping": {
      "name": "John Doe",
      "phone": "+1 (555) 123-4567",
      "address": {
        "city": "San Francisco",
        "country": "US",
        "line1": "123 Market St",
        "line2": "Apt 4B",
        "postal_code": "94103",
        "state": "CA"
      }
    }
  }'

Responses

Created customer details

Bodyapplication/json
idstringrequired

Unique identifier for the object.

Example: "cus_NffrFeUfNV2Hib"
objectstringrequired

The type of the object.

Example: "customer"
namestringrequired

The full name or business name of the customer.

Example: "John Doe"
emailstring

The customer’s email address.

Example: "john.doe@example.com"
descriptionstring

An arbitrary string attached to the object. Often useful for displaying to users.

Example: "My First Test Customer"
phonestring

The customer’s phone number.

Example: null
creatednumberrequired

Time at which the object was created. Measured in seconds since the Unix epoch.

Example: 1680893993
currencystring

Three-letter ISO currency code

Example: "USD"
addressArray of objects(Address)

The customer’s address.

shippingobject

The customer’s shipping information. Appears on invoices emailed to this customer.

Response
application/json
{ "id": "cus_NffrFeUfNV2Hib", "object": "customer", "name": "John Doe", "email": "john.doe@example.com", "description": "My First Test Customer", "phone": null, "created": 1680893993, "currency": "USD", "address": [ { … } ], "shipping": { "name": "John Doe", "phone": "+1 (555) 123-4567", "address": { … } } }

Get paginated list of customers

Request

Retrieves a paginated list of customers associated with the authenticated account.

Query
searchstring
Default ""
pagenumber>= 1
Default 1
takenumber[ 1 .. 50 ]
Default 10
orderstring
Default "ASC"
Enum"ASC""DESC"
sortingFieldstring
Default "createdAt"
Headers
cc-api-keystringrequired

Chaching API Key

curl -i -X GET \
  'https://chaching.redocly.app/_mock/developer-guide/api/customers?page=1&take=10&order=ASC&sortingField=createdAt' \
  -H 'cc-api-key: string'

Responses

Paginated list of customers

Bodyapplication/jsonArray [
idstringrequired

Unique identifier for the object.

Example: "cus_NffrFeUfNV2Hib"
objectstringrequired

The type of the object.

Example: "customer"
namestringrequired

The full name or business name of the customer.

Example: "John Doe"
emailstring

The customer’s email address.

Example: "john.doe@example.com"
descriptionstring

An arbitrary string attached to the object. Often useful for displaying to users.

Example: "My First Test Customer"
phonestring

The customer’s phone number.

Example: null
creatednumberrequired

Time at which the object was created. Measured in seconds since the Unix epoch.

Example: 1680893993
currencystring

Three-letter ISO currency code

Example: "USD"
addressArray of objects(Address)

The customer’s address.

shippingobject

The customer’s shipping information. Appears on invoices emailed to this customer.

]
Response
application/json
[ { "id": "cus_NffrFeUfNV2Hib", "object": "customer", "name": "John Doe", "email": "john.doe@example.com", "description": "My First Test Customer", "phone": null, "created": 1680893993, "currency": "USD", "address": [ … ], "shipping": { … } } ]

Get customer details by External Key

Request

Retrieves detailed information about a specific customer using their External Key.

Path
externalKeystringrequired

External Key of the customer to retrieve details for

Example: cus_c93f7e842b89b9f7cad17918
Headers
cc-api-keystringrequired

Chaching API Key

curl -i -X GET \
  https://chaching.redocly.app/_mock/developer-guide/api/customers/cus_c93f7e842b89b9f7cad17918 \
  -H 'cc-api-key: string'

Responses

Customer details

Bodyapplication/json
idstringrequired

Unique identifier for the object.

Example: "cus_NffrFeUfNV2Hib"
objectstringrequired

The type of the object.

Example: "customer"
namestringrequired

The full name or business name of the customer.

Example: "John Doe"
emailstring

The customer’s email address.

Example: "john.doe@example.com"
descriptionstring

An arbitrary string attached to the object. Often useful for displaying to users.

Example: "My First Test Customer"
phonestring

The customer’s phone number.

Example: null
creatednumberrequired

Time at which the object was created. Measured in seconds since the Unix epoch.

Example: 1680893993
currencystring

Three-letter ISO currency code

Example: "USD"
addressArray of objects(Address)

The customer’s address.

shippingobject

The customer’s shipping information. Appears on invoices emailed to this customer.

Response
application/json
{ "id": "cus_NffrFeUfNV2Hib", "object": "customer", "name": "John Doe", "email": "john.doe@example.com", "description": "My First Test Customer", "phone": null, "created": 1680893993, "currency": "USD", "address": [ { … } ], "shipping": { "name": "John Doe", "phone": "+1 (555) 123-4567", "address": { … } } }

Update customer details by External Key

Request

Updates the details of a specific customer using their External Key and the provided update data.

Path
externalKeystringrequired

External Key of the customer to update

Example: cus_c93f7e842b89b9f7cad17918
Headers
cc-api-keystringrequired

Chaching API Key

Bodyapplication/jsonrequired
emailstring(email)<= 128 characters
namestring<= 100 characters
billingAddressobject(BillingAddressDto)
shippingAddressobject(ShippingAddressDto)
curl -i -X PATCH \
  https://chaching.redocly.app/_mock/developer-guide/api/customers/cus_c93f7e842b89b9f7cad17918 \
  -H 'Content-Type: application/json' \
  -H 'cc-api-key: string' \
  -d '{
    "email": "user@example.com",
    "name": "string",
    "billingAddress": {
      "email": "user@example.com",
      "address1": "string",
      "address2": "string",
      "postalCode": "string",
      "city": "string",
      "country": "string",
      "state": "string",
      "phone": "string"
    },
    "shippingAddress": {
      "shippingAddress1": "string",
      "shippingAddress2": "string",
      "shippingPostalCode": "string",
      "shippingCity": "string",
      "shippingCountry": "string",
      "shippingState": "string",
      "shippingPhone": "string"
    }
  }'

Responses

Number of records updated

Bodyapplication/json
number
Response
application/json
0

Delete a customer by External Key

Request

Deletes a specific customer associated with the authenticated account using their External Key.

Path
externalKeystringrequired

External Key of the customer to delete

Example: cus_c93f7e842b89b9f7cad17918
Headers
cc-api-keystringrequired

Chaching API Key

curl -i -X DELETE \
  https://chaching.redocly.app/_mock/developer-guide/api/customers/cus_c93f7e842b89b9f7cad17918 \
  -H 'cc-api-key: string'

Responses

Number of records deleted

Bodyapplication/json
number
Response
application/json
0

List customer payment methods

Request

Retrieves a paginated list of all payment methods associated with a specific customer.

Path
externalKeystringrequired

External Key of the customer whose payment methods are to be listed

Example: cus_c93f7e842b89b9f7cad17918
Query
searchstring
Default ""
pagenumber>= 1
Default 1
takenumber[ 1 .. 50 ]
Default 10
Headers
cc-api-keystringrequired

Chaching API Key

curl -i -X GET \
  'https://chaching.redocly.app/_mock/developer-guide/api/customers/cus_c93f7e842b89b9f7cad17918/payment-methods?page=1&take=10' \
  -H 'cc-api-key: string'

Responses

List customer payment methods

Bodyapplication/json
dataArray of arraysrequired
metaobject(PageMetaDto)required
meta.​pagenumberrequired
meta.​takenumberrequired
meta.​itemsTotalnumberrequired
meta.​pagesTotalnumberrequired
Response
application/json
{ "data": [ [] ], "meta": { "page": 0, "take": 0, "itemsTotal": 0, "pagesTotal": 0 } }

Get customer payment method details

Request

Retrieves detailed information about a specific payment method associated with a customer.

Path
externalKeystringrequired

External Key of the customer

Example: cus_c93f7e842b89b9f7cad17918
idstringrequired

ID of the payment method to retrieve details for

Example: pm_1234567890abcdef
Headers
cc-api-keystringrequired

Chaching API Key

curl -i -X GET \
  https://chaching.redocly.app/_mock/developer-guide/api/customers/cus_c93f7e842b89b9f7cad17918/payment-methods/pm_1234567890abcdef \
  -H 'cc-api-key: string'

Responses

Customer payment method details

Bodyapplication/json
idstringrequired

Unique identifier for the payment method.

Example: "pm_1Q0PsIJvEtkwdCNYMSaVuRz6"
objectstringrequired

Type of Stripe object.

Example: "payment_method"
allow_redisplaystringrequired

Controls whether the payment method can be redisplayed.

Example: "unspecified"
billing_detailsobjectrequired

Billing details associated with the payment method.

billing_details.​addressobjectrequired

Billing address associated with the payment method.

billing_details.​address.​citystring or null

City of the billing address.

Example: null
billing_details.​address.​countrystring or null

Country of the billing address.

Example: null
billing_details.​address.​line1string or null

Street line 1 of the billing address.

Example: null
billing_details.​address.​line2string or null

Street line 2 of the billing address.

Example: null
billing_details.​address.​postal_codestring or null

Postal or ZIP code.

Example: null
billing_details.​address.​statestring or null

State or province.

Example: null
billing_details.​emailstring or null

Billing email address.

Example: null
billing_details.​namestring or nullrequired

Full name of the account owner.

Example: "John Doe"
billing_details.​phonestring or null

Owner phone number.

Example: null
creatednumberrequired

Unix timestamp when the payment method was created.

Example: 1726673582
customerstring or null

ID of the attached customer, if any.

Example: null
livemodebooleanrequired

Indicates if the object exists in live mode.

Example: false
metadataobjectrequired

Set of key-value pairs for storing additional information.

Example: {}
typestringrequired

Payment method type.

Example: "us_bank_account"
us_bank_accountobject

US bank account details if the payment method is a bank account.

Response
application/json
{ "id": "pm_1Q0PsIJvEtkwdCNYMSaVuRz6", "object": "payment_method", "allow_redisplay": "unspecified", "billing_details": { "address": { … }, "email": null, "name": "John Doe", "phone": null }, "created": 1726673582, "customer": null, "livemode": false, "metadata": {}, "type": "us_bank_account", "us_bank_account": { "account_holder_type": "individual", "account_type": "checking", "bank_name": "STRIPE TEST BANK", "financial_connections_account": null, "fingerprint": "LstWJFsCK7P349Bg", "last4": "6789", "networks": { … }, "routing_number": "110000000", "status_details": {} } }

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.

Operations

Transactions

Transactions represent the payments and charges made by your customers.

Operations

Invoices

Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.

Operations

TaxRates

TaxRates allow you to calculate the tax to collect from your customer.

Operations

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.

Operations

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.

Operations

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.

Operations

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.

Operations