Create or update a customer
Customers, addresses, and businesses are related entities in Paddle that hold information about the people and businesses that make purchases. Create customers to start billing.
Customers are the people and businesses that make purchases.
Customer entities are lightweight, storing key information like name, email, and localization information. They have two sub-entities:
- Addresses, which hold information about billing addresses
- Businesses, which include information that you need when working with a business
Customers can have multiple addresses and businesses against them — useful when you're dealing with a large customer with offices in different locations. They can be linked to multiple subscriptions, too.
Create a customer
Create a customer to start billing a person or business.
Paddle automatically creates customers and addresses for you as part of the checkout. If a customer enters a tax number, Paddle creates a related business, too.
When you're creating an invoice using the Paddle dashboard, you can add a new customer, address, and business from the new invoice screen.
Customer email addresses must be unique in your system. Customers can be linked to multiple subscriptions, so there's no need to create a new customer for each subscription.
Send a POST request to the /customers
endpoint.
Request
12341{
2 "email": "jo@example.com",
3 "name": "Jo Brown"
4}
Response
If successful, Paddle responds with a copy of the new customer entity.
12345678910111213141516171{
2 "data": {
3 "id": "ctm_01hv6y1jedq4p1n0yqn5ba3ky4",
4 "status": "active",
5 "custom_data": null,
6 "name": "Jo Brown",
7 "email": "jo@example.com",
8 "marketing_consent": false,
9 "locale": "en",
10 "created_at": "2024-04-11T15:57:24.813Z",
11 "updated_at": "2024-04-11T15:57:24.813Z",
12 "import_meta": null
13 },
14 "meta": {
15 "request_id": "9bcdcc29-e180-4055-ad3d-d37e5dc5e56d"
16 }
17}
Create an address
You'll need an address against a customer before you can create a transaction, invoice, or subscription.
To make buying as frictionless as possible, Paddle only requires a buyer's country. This is required for tax calculation and regulatory compliance purposes. You don't need to complete a full address, though we recommend this for customers that you're invoicing.
With Paddle, you can sell in over 200 countries and territories with no extra engineering effort. For a full list of supported countries, see: Supported countries
Some countries or regions require a ZIP or postal code for further tax calculation and regulatory compliance.
Paddle automatically creates a related addresses for a customer as part of the checkout.
When you're creating an invoice using the Paddle dashboard, you can add a new address from the new invoice screen.
Send a POST request to the /customers/{customer_id}/addresses
endpoint.
Paddle ID of the customer entity to work with.
API
List customers by making a GET request to the /customers
endpoint. Work your way through the results to find the customer that you'd like to work with.
Paddle dashboard
Head to Paddle > Customers, click the … menu next to the customer in the list, then choose Copy ID.
Request
123456781{
2 "description": "Head Office",
3 "first_line": "4050 Jefferson Plaza, 41st Floor",
4 "city": "New York",
5 "postal_code": "10021",
6 "region": "NY",
7 "country_code": "US"
8}
Response
If successful, Paddle responds with a copy of the new address entity.
12345678910111213141516171819201{
2 "data": {
3 "id": "add_01hv8gq3318ktkfengj2r75gfx",
4 "status": "active",
5 "customer_id": "ctm_01hv6y1jedq4p1n0yqn5ba3ky4",
6 "description": "Head Office",
7 "first_line": "4050 Jefferson Plaza, 41st Floor",
8 "second_line": null,
9 "city": "New York",
10 "postal_code": "10021",
11 "region": "NY",
12 "country_code": "US",
13 "custom_data": null,
14 "created_at": "2024-04-12T06:42:58.785Z",
15 "updated_at": "2024-04-12T06:42:58.785Z",
16 "import_meta": null
17 },
18 "meta": {
19 "request_id": "dd6bbb71-6551-4e4a-843c-b10611cddb6e"
20 }
Create a business
You should add a business if you're dealing with a company. You don't need to add a business if you're selling a subscription to a private individual.
Paddle automatically creates a related business for a customer as part of the checkout if they enter a tax number.
When you're creating an invoice using the Paddle dashboard, you can add a new business from the new invoice screen.
You can add contacts to a business. This could be people in accounts or IT who should receive billing related emails. Add as many contacts as you like to a business.
Send a POST request to the /customers/{customer_id}/businesses
endpoint.
Paddle ID of the customer entity to work with.
API
List businesss by making a GET request to the /businesses
endpoint. Work your way through the results to find the business that you'd like to work with.
Paddle dashboard
Head to Paddle > Customers, click the … menu next to the customer in the list, then choose Copy ID.
Request
12345678910111{
2 "name": "Uplift Inc.",
3 "company_number": "555775291485",
4 "tax_identifier": "555952383",
5 "contacts": [
6 {
7 "name": "Parker Jones",
8 "email": "parker@example.com"
9 }
10 ]
11}
Response
If successful, Paddle responds with a copy of the new business entity.
12345678910111213141516171819201{
2 "data": {
3 "id": "biz_01hv8hkr641vmpwytx38znv56k",
4 "status": "active",
5 "customer_id": "ctm_01hv6y1jedq4p1n0yqn5ba3ky4",
6 "name": "Uplift Inc.",
7 "company_number": "555775291485",
8 "tax_identifier": "555952383",
9 "contacts": [
10 {
11 "name": "Parker Jones",
12 "email": "parker@example.com"
13 }
14 ],
15 "custom_data": null,
16 "created_at": "2024-04-12T06:58:37.892Z",
17 "updated_at": "2024-04-12T06:58:37.892Z",
18 "import_meta": null
19 },
20 "meta": {
Create a subscription for a customer
Paddle automatically creates a subscription for a customer when:
- they pay for recurring products online using the checkout (self-serve)
- your team create an invoice for recurring products and issue it (sales-assisted)
You can create a new subscription for a customer in the Paddle dashboard by going to Paddle > Customers, then clicking into the customer you want to create a subscription for.
Under the Subscriptions section, click New subscription.
Fill out the details to create your subscription.
When you create subscriptions through the Paddle dashboard, Paddle automatically creates an invoice each time a payment is due.
Prefill a customer, address, or business on a checkout
Paddle checkout lets you add a checkout to your website, letting customers sign up and pay for subscriptions. Quickly drop in an overlay checkout or seamlessly integrate an inline checkout. Learn more: Paddle checkout
When working with logged-in users, we recommend passing a customer, address, and business entity to Paddle checkout using Paddle.js. This means customers can easily purchase upgrades or new subscriptions without needing to fill out their details again.
Use the Paddle.Checkout.Open()
method and include customer.id
.
If you include customer.id
, you may also include:
customer.address.id
customer.business.id
12345678910111213141516171819201Paddle.Checkout.open({
2 settings: {
3 theme: "light",
4 locale: "en"
5 },
6 "customer": {
7 "id": "ctm_01gm82kny0ad1tk358gxmsq87m",
8 "address": {
9 "id": "add_01gm82v81g69n9hdb0v9sw6j40"
10 },
11 "business": {
12 "id": "biz_01gnymqsj1etmestb4yhemdavm"
13 }
14 },
15 items: [
16 {
17 priceId: 'pri_01gm81eqze2vmmvhpjg13bfeqg',
18 quantity: 1
19 },
20 {
Update a customer, address, or business
Update a customer, address, or business when a customer's information has changed.
When developing an integration, we recommend using the API to provide a way for customers to update their information themselves in your frontend.
Send a PATCH request to relevant endpoint.
Update a customer
Paddle ID of the customer to update.
Update an address
Paddle ID of the customer whose address you want to update.
Paddle ID of the address to update.
Update a business
Paddle ID of the customer whose business you want to update.
Paddle ID of the business to update.
Updating contacts works like a PUT request. You should send the complete list of contacts that you'd like to be against your entity — including any existing items. If you omit an item, it's removed from the contacts list. See: Work with lists
Archive a customer, address, or business
When you no longer need a customer, address, or business, mark it as archived. The entity remains in Paddle, so you can get information about it, but it can't be applied to new transactions.
To archive a customer, address, or business, update the entity using a PATCH request.
In the body of your request, set status
to archived
. For example:
Paddle ID of the customer to archive.
Request
1231{
2 "status": "archived"
3}
Response
If successful, Paddle responds with the complete customer entity. The status
is archived
.
1234567891011121314151{
2 "data": {
3 "id": "ctm_01h8441jn5pcwrfhwh78jqt8hk",
4 "status": "archived",
5 "name": "Sam Miller",
6 "email": "sam@example.com",
7 "marketing_consent": false,
8 "locale": "en",
9 "created_at": "2023-08-18T10:46:18.533Z",
10 "updated_at": "2023-08-18T10:46:18.533Z"
11 },
12 "meta": {
13 "request_id": "31858add-0308-4c26-90fb-266e16be0c8c"
14 }
15}
Events
customer.created | Occurs when you create a customer, or when Paddle.js creates a customer at checkout. |
address.created | Occurs when you create an address, or when Paddle.js creates an address at checkout. |
business.created | Occurs when you create a business, or when Paddle.js creates a business at checkout. |
customer.updated | Occurs when you update a customer, or when Paddle.js updates a customer at checkout. |
address.updated | Occurs when you update an address, or when Paddle.js updates an address at checkout. |
business.updated | Occurs when you update a business, or when Paddle.js updates a business at checkout. |