# Changelog

All notable changes to this project will be documented in this file.

This project follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.6.0] - 2026-08-27

### Added
- **Credential-on-file and automatic payments**: support `network_data`, expanded gateway network data, and `automatic_payments.subscription`.

### CI
- Publish to PyPI through GitHub OIDC trusted publishing.

## [3.5.0] - 2026-08-11

### Changed
- **Item and shipment classes**: renamed to generic classes without `Order` prefix ([#145](https://github.com/mercadopago/sdk-python/pull/145))
- **Payer classes**: consolidated into a single generic `payer.py` ([#145](https://github.com/mercadopago/sdk-python/pull/145))

### CI
- Add Python 3.13 and 3.14 to CI matrix ([#145](https://github.com/mercadopago/sdk-python/pull/145))
- Drop Python 3.9 from CI matrix — not supported by this SDK ([#145](https://github.com/mercadopago/sdk-python/pull/145))
- Standardize CI/CD workflows ([#145](https://github.com/mercadopago/sdk-python/pull/145))

## [3.4.0] - 2026-08-04

### Added

- **SDK ergonomics**: typed exceptions, configurable retry, and auto-pagination ([#141](https://github.com/mercadopago/sdk-python/pull/141))
  - `MPApiException` now has 12 specific subtypes per HTTP status code
  - Request options gain optional `max_retries`, `retry_on`, `initial_delay_ms`, `max_delay_ms` and `on_retry` callback
  - New auto-pagination support on search endpoints
- **Missing API methods** — `disbursement_refund.list()`, `advanced_payment.update()`, `customer_card.update()`, `payment.update()` ([#140](https://github.com/mercadopago/sdk-python/pull/140))
- **CREDENTIAL_ON_FILE messaging fields** on Payment types ([#139](https://github.com/mercadopago/sdk-python/pull/139)): `first_transaction`, `storage`, `transaction_initiator`, `reference`

### Fixed

- Webhook `tolerance_seconds` unit mismatch — `ts` header value compared in seconds against a millisecond clock ([#142](https://github.com/mercadopago/sdk-python/pull/142))
- `constant_time_equals` error on multibyte v1 hash ([#142](https://github.com/mercadopago/sdk-python/pull/142))

### Dependencies

- Bump `actions/checkout` to `v7.0.1` ([#138](https://github.com/mercadopago/sdk-python/pull/138))

## [3.3.0] - 2026-06-30

### Added

- **Orders Checkout Pro**: beta support helpers, example payload, and
  wire-level tests for creation through `sdk.order().create()`, including
  `config.online`, `config.payment_method`, redirect URLs, tracking pixels,
  shipment, items, and vertical `additional_info` fields.
- **Orders**: added `sdk.order().refund()` as a backwards-compatible alias for
  the existing order refund endpoint.

## [3.2.0] - 2026-05-27

### Added

- **OAuth**: authorization URL builder, token exchange, and token refresh
  (`sdk.oauth().get_authorization_url()`, `.create()`, `.refresh()`).
  Enables marketplace and platform integrations to operate on behalf of
  other sellers via the OAuth 2.0 authorization code flow.
  Endpoints: `POST /oauth/token`.

- **Point**: in-person payment intent management for MercadoPago Point
  devices (`sdk.point().get_devices()`, `.create()`, `.get()`, `.cancel()`).
  Enables card-present transactions through physical Point card readers.
  Endpoints: `GET /point/integration-api/devices`,
  `POST /point/integration-api/devices/{device_id}/payment-intents`,
  `GET /point/integration-api/payment-intents/{id}`,
  `DELETE /point/integration-api/devices/{device_id}/payment-intents/{id}`.
  Note: `change_operating_mode` (PATCH) is not included; requires HttpClient
  PATCH support.

- **Invoice**: retrieval and search of subscription billing invoices
  (`sdk.invoice().get()`, `.search()`). Enables monitoring of authorized
  payments generated by PreApproval billing cycles.
  Endpoints: `GET /authorized_payments/{id}`,
  `GET /authorized_payments/search`.
