# Create a Customer [API Reference](https://docs.credyt.ai/api/customers-create.md) Before you can start billing your customers you need to register them in Credyt and create subscriptions to the products they use. ## Product Subscriptions[​](#product-subscriptions "Direct link to Product Subscriptions") When creating a customer you can subscribe them to products in your [Product Catalog](https://docs.credyt.ai/quickstart/create-a-product.md). The product code and version you specify determines the pricing that will be used to bill the customer. When you subscribe a customer to a product, Credyt automatically creates their wallet and provisions accounts in the billing currencies defined by the product’s pricing configuration. These accounts are used to track balances, top-ups, and usage from the start of the subscription. ### Example[​](#example "Direct link to Example") * REST API * TypeScript SDK * Python SDK POST https\://api.credyt.ai/customers ```json { "name": "John Doe", "external_id": "18991", "subscriptions": [ { "products": [ { "code": "glitch_video_std" } ] } ] } ``` **Response** ```json { "id": "cust_473cr1y0ghbyc3m1yfbwvn3nxx", "subscriptions": [ { "id": "sub_411xhg4kqakf3d8ybezbzta558", "started_at": "2025-08-24T14:15:22Z", "status": "active", "products": [ { "id": "prp_4e28n8kk41931f5yt5em49ecw7", "code": "glitch_video_std", "version": "default" } ] } ] } ``` ```typescript await client.customers.create({ name: "John Doe", externalId: "18991", subscriptions: [ { products: [ { code: "glitch_video_std", }, ], }, ], }); ``` [View full sample on GitHub](https://github.com/credyt/sdk-ts/blob/main/samples/customersCreateSample.ts#L112) **SDK response object** ```typescript const response = { id: "cust_473cr1y0ghbyc3m1yfbwvn3nxx", subscriptions: [ { id: "sub_411xhg4kqakf3d8ybezbzta558", startedAt: "2025-08-24T14:15:22Z", status: "active", products: [ { id: "prp_4e28n8kk41931f5yt5em49ecw7", code: "glitch_video_std", version: "default", }, ], }, ], }; ``` ```python response = client.customers.create( body={ "name": "John Doe", "external_id": "18991", "subscriptions": [ { "products": [ { "code": "glitch_video_std", }, ], }, ], }, ) ``` [View full sample on GitHub](https://github.com/credyt/sdk-python/blob/main/samples/customers_create_subscribe_to_glitch_video.py#L20) **SDK response object** ```python response = { "id": "cust_473cr1y0ghbyc3m1yfbwvn3nxx", "subscriptions": [ { "id": "sub_411xhg4kqakf3d8ybezbzta558", "started_at": "2025-08-24T14:15:22Z", "status": "active", "products": [ { "id": "prp_4e28n8kk41931f5yt5em49ecw7", "code": "glitch_video_std", "version": "default", }, ], }, ], } ``` tip The `external_id` field allows you to use your own identifiers when sending usage data to Credyt Make a note of the customer `id`. We'll use it in the subsequent exercises.