> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Data types

Make requests to the Paddle API using JSON. Paddle responds using JSON.

---

The Paddle API uses JSON for requests and responses.

When making requests, specify `application/json` as your `Content-Type`. For example:

```bash {% highlightLines="3" title="cURL request" %}
curl -X POST https://api.paddle.com/customers \
  -H "Authorization: Bearer pdl_live_apikey_01gtgztp8f4kek3yd4g1wrksa3_q6TGTJyvoIz7LDtXT65bX7_AQO" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Sam Miller", "email": "sam@example.com" }'
```

Paddle always returns responses as JSON. This includes [errors](https://developer.paddle.com/api-reference/about/errors.md) as well as [success responses](https://developer.paddle.com/api-reference/about/success-responses.md).

## Dates and times

All dates and times use [the RFC 3339 format](https://www.rfc-editor.org/rfc/rfc3339) and are returned in UTC. For example:

| Time and date | RFC 3339 |
|---|---|
| 3:30 PM on March 20 2024 | `2024-03-20T15:30:00.00Z` |
| 2 AM on January 12 2025 | `2025-01-12T02:00:00.00Z` |
| 8:50 PM on October 12 2025 | `2025-10-12T20:50:00.00Z` |

## Booleans

Boolean fields accept `true` or `false`. Paddle doesn't coerce strings like `"true"` or `1` — pass the JSON boolean.

## Null values

`null` is a valid value for nullable fields. Setting a field to `null` in a `PATCH` request clears the value. Omitting the field leaves the existing value unchanged.

## Currency codes

Currency codes follow [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) and are three-letter uppercase strings like `USD`, `GBP`, or `JPY`. See [Supported currencies](https://developer.paddle.com/concepts/sell/supported-currencies.md) for the full list.

## Money

Monetary values are returned as strings in the lowest denomination for a currency. For example, the API returns values in cents for `USD` and pence for `GBP`.

Many currencies have two decimals, but this can vary. For example:

| Currency | Decimals | Example | Value |
|---|:---:|---:|---:|
| `USD` | 2 | $24.99 | `"2499"` |
| `JPY` | 0 | ¥1000 | `"1000"` |

Use a currency library to format monetary values to the correct number of decimals. Currency libraries also help format values for different locales, making sure symbols and decimal separators are placed correctly.

For convenience, the [preview prices operation](https://developer.paddle.com/api-reference/pricing-preview/preview-prices.md) returns `formatted_unit_totals` and `formatted_totals` objects alongside objects that return totals in the lowest denomination. Formatted totals include the currency symbol and are formatted for the country or region you're working with.

For a full list of supported currencies and their decimals, see [Supported currencies](https://developer.paddle.com/concepts/sell/supported-currencies.md).

## Custom data

You can add [custom data](https://developer.paddle.com/api-reference/about/custom-data.md) to some entities in Paddle. Custom data must be valid JSON.