> ## Documentation Index
> Fetch the complete documentation index at: https://docs.r28.ai/charter/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Charter works for any HTTP API, including the user's own. The packs are examples of the result, not the limit: an API with no pack is declared the same way, following https://raw.githubusercontent.com/r28ai/charter/main/docs/.mintlify/skills/declaring-charter-tools/SKILL.md.
> Charter is for agents that act in customers' accounts: every call is checked field by field before it's sent, the app says whose account each call is for, and the same declarations list what each tool can reach. https://docs.r28.ai/charter/llms.txt says what it is and lists every page.

# payment_intents_search

> Search PaymentIntents by amount, currency, customer, status, metadata or creation date. Results usually lag a write by under a minute, and longer during Stripe outages, so read back something just written with the list or retrieve tool.

GET`https://api.stripe.com/v1/payment_intents/search`

```python stripe_payment_intents_search.py theme={null}
import asyncio

from charter.packs import stripe

result = asyncio.run(stripe.payment_intents_search.ainvoke({"query": ...}))
```

> [!NOTE]
>
> With `stripe.RESTRICTED_KEY`, requires `payment_intent_read` or `payment_intent_write`. Pages by cursor: `next_page` is sent back as `page`.

## Query parameters

| Field | Type | Description |
| - | - | - |
| `expand` | `string`\[] | Specifies which fields in the response should be expanded. 'total\_count' adds the number of results that match the query, accurate up to 10,000, without fetching them. Prefix a field of the results with data. to expand it on every result: 'data.customer' replaces each customer ID with the customer. At most four properties deep, data included: 'data.payment\_intent.customer.default\_source'. |
| `limit` | `integer` | A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. ≥ 1; ≤ 100 |
| `page` | `string` | A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next\_page value returned in a previous response to request subsequent results. max length 5000 |
| `query` \* | `string` | The search query string. See [search query language](https://docs.stripe.com/search#search-query-language) and the list of supported [query fields for payment intents](https://docs.stripe.com/search#query-fields-for-paymentintents). Query fields for payment intents: amount (numeric), created (numeric), currency (token), customer (token), metadata (token), status (token). Syntax: field:value is an exact match, and string values must be quoted (email:'[jane@example.com](mailto:jane@example.com)'). field\~'abc' matches a substring of at least 3 characters on string fields. Numeric fields take >, \<, >= and \<=. A leading - negates a clause, and field:null matches an empty field. Metadata is metadata\['key']:'value'. Up to 10 clauses, joined by AND or by OR but never both, with no parentheses. Timestamps are Unix seconds, not milliseconds: created>1700000000. Amounts are in the smallest currency unit: \$15.00 is 1500. A status match is against a cached status, so a result can show a newer one: check status on what comes back. min length 1; max length 5000 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.