# Adds support for collecting card details and confirming Payment Intents to server-driven Terminal integrations

## What’s new

This change adds the following [action types](https://docs.stripe.com/api/terminal/readers/object.md?api-version=2025-06-30.basil#terminal_reader_object-action-type) to the Terminal [Reader API](https://docs.stripe.com/api/terminal/readers.md?api-version=2025-06-30.basil) to support [server-driven Terminal integrations](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=server-driven):

- `collect_payment_method`
- `confirm_payment_intent`

This release also adds the [terminal.reader.action_updated](https://docs.stripe.com/api/events/types.md?api-version=2025-06-30.basil#event_types-terminal.reader.action_updated) event.

## Impact

Server-driven Terminal integrations can now collect card details and confirm Payment Intents using the API.

Learn more about the [server-driven integration for Terminal](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven&process=inspect).

## Changes

#### REST API

| Endpoints | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or endpoints |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

| Values | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Event.type](/api/events/object?api-version=2025-06-30.basil#event_object-type) |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.action.type](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action-type) |
| `terminal.reader.action_updated` | Added | [WebhookEndpoint#create.enabled_events](/api/webhook_endpoints/create?api-version=2025-06-30.basil#create_webhook_endpoint-enabled_events), [WebhookEndpoint#update.enabled_events](/api/webhook_endpoints/update?api-version=2025-06-30.basil#update_webhook_endpoint-enabled_events) |

|  | Change | Event type |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### Ruby

| Methods | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal::Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal::Reader::Action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

#### Python

| Methods | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.Action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

| Values | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Event.type](/api/events/object?api-version=2025-06-30.basil#event_object-type) |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.Action.type](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action-type) |
| `terminal.reader.action_updated` | Added | [WebhookEndpoint.CreateParams.enabled_events](/api/webhook_endpoints/create?api-version=2025-06-30.basil#create_webhook_endpoint-enabled_events), [WebhookEndpoint.ModifyParams.enabled_events](/api/webhook_endpoints/create?api-version=2025-06-30.basil#create_webhook_endpoint-enabled_events) |

|  | Change | Event type |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### PHP

| Methods | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Values | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Event.type](/api/events/object?api-version=2025-06-30.basil#event_object-type) |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.action.type](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action-type) |

|  | Change | Event type |
| --- | --- | --- |
| `TERMINAL_READER_ACTION_UPDATED` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### Java

| Methods | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `collectPaymentMethod`, `confirmPaymentIntent` | Added | [terminal.Reader.action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

| Value | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [WebhookEndpointCreateParams.enabledEvents](/api/webhook_endpoints/create?api-version=2025-06-30.basil#create_webhook_endpoint-enabled_events), [WebhookEndpointUpdateParams.enabledEvents](/api/webhook_endpoints/update?api-version=2025-06-30.basil#update_webhook_endpoint-enabled_events) |

|  | Change | Event type |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### Node.js

| Methods | Change | Resource |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

| Values | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Event.type](/api/events/object?api-version=2025-06-30.basil#event_object-type) |
| `collect_payment_method`, `confirm_payment_intent` | Added | [Terminal.Reader.action.type](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action-type) |
| `terminal.reader.action_updated` | Added | [WebhookEndpointCreateParams.enabled_events](/api/webhook_endpoints/create?api-version=2025-06-30.basil#create_webhook_endpoint-enabled_events), [WebhookEndpointUpdateParams.enabled_events](/api/webhook_endpoints/update?api-version=2025-06-30.basil#update_webhook_endpoint-enabled_events) |

|  | Change | Event type |
| --- | --- | --- |
| `TerminalReaderActionUpdatedEvent` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### Go

| Methods | Change | Resource |
| --- | --- | --- |
| `CollectPaymentMethod`, `ConfirmPaymentIntent` | Added | [TerminalReader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `CollectPaymentMethod`, `ConfirmPaymentIntent` | Added | [TerminalReaderAction](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

| Values | Change | Enums |
| --- | --- | --- |
| `terminal.reader.action_updated` | Added | [Event.Type](/api/events/object?api-version=2025-06-30.basil#event_object-type) |
| `collect_payment_method`, `confirm_payment_intent` | Added | [TerminalReaderAction.Type](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action-type) |

|  | Change | Event type |
| --- | --- | --- |
| `EventTypeTerminalReaderActionUpdated` | Added | [TerminalReader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

#### .NET

| Methods | Change | Resource |
| --- | --- | --- |
| `CollectPaymentMethod`, `ConfirmPaymentIntent` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

| Parameters | Change | Resources or methods |
| --- | --- | --- |
| `CollectPaymentMethod`, `ConfirmPaymentIntent` | Added | [Terminal.Reader.Action](/api/terminal/readers/object?api-version=2025-06-30.basil#terminal_reader_object-action) |

|  | Change | Event type |
| --- | --- | --- |
| `TerminalReaderActionUpdated` | Added | [Terminal.Reader](/api/terminal/readers/object?api-version=2025-06-30.basil) |

## Upgrade

#### REST API

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. If you use an SDK, upgrade to the corresponding SDK version for this API version.
   - If you don’t use an SDK, update your [API requests](https://docs.stripe.com/api/versioning.md) to include `Stripe-Version: 2025-06-30.basil`
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Ruby

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Ruby SDK to [v15.3.0](https://github.com/stripe/stripe-ruby/releases/tag/v15.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Python

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Python SDK to [v12.3.0](https://github.com/stripe/stripe-python/releases/tag/v12.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### PHP

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your PHP SDK to [v17.4.0](https://github.com/stripe/stripe-php/releases/tag/v17.4.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Java

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Java SDK to [v29.3.0](https://github.com/stripe/stripe-java/releases/tag/v29.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Node.js

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Node SDK to [v18.3.0](https://github.com/stripe/stripe-node/releases/tag/v18.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Go

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your Go SDK to [v82.3.0](https://github.com/stripe/stripe-go/releases/tag/v82.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### .NET

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
2. Upgrade your .NET SDK to [v48.3.0](https://github.com/stripe/stripe-dotnet/releases/tag/v48.3.0)
3. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
4. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
5. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
6. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).
