> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ntropy.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ntropy.com/_mcp/server.

# Changelog

## October 31, 2024

# New version of the API 🚀

Our team is excited to announce the version 3 of the API, packed with powerful new capabilities and major improvements
to enhance performance, streamline integrations, and increase flexibility for developers. This release adds webhooks, a
generic batch API, and high-speed bank statement verification, along with uniform pagination and filtering across resources.
The API release includes some changes based on
developer feedback to make our API more powerful and easier to use. Thank you for your input!

In line with this release, we've also launched a fully updated version of our documentation, featuring a fully integrated
developers and API documentation, extensive walkthrough's and enhanced navigation. 

For developers who prefer to reference the previous version, we're maintaining access to the legacy version of the 
documentation available at [legacy.docs.ntropy.com](https://legacy.docs.ntropy.com).

## New API Features 🛠

### Webhooks

Keep your application updated with our new webhook support, providing event-driven notifications for batch completion,
report readiness and bank statement extraction. Webhooks
help you stay within rate limits, optimize server usage, and are perfect for serverless setups needing minimal resource
demands.

<EndpointRequestSnippet endpoint="POST /v3/webhooks" />

Complete guide: [Webhooks](/webhooks).

### Uniformized pagination

We’ve standardized pagination across all resources through cursor-based pagination, creating a more uniform experience 
for developers. It allows for one single pagination procedure to be implemented for all resources, which is now 
supported in the SDK as well:

<EndpointRequestSnippet endpoint="GET /v3/transactions" />

The majority of the API resources now support timestamp filtering intervals, in the form of 
`created_after` and `created_before`, as well as additional arguments, such as an `account_holder_id` for 
[Transactions](/documentation/api/transactions/list-transactions) or `status` for 
[Batches](/documentation/api/batches/get-batches):

### Fast Bank Statement Verification

We've rolled out a new low-latency extractor that looks at the beginning of the bank statement and extracts key
identification details such as institution and account holder information. It can be used for instant verification,
UI improvements and more.

Complete guide: [Fast verification](/fast-verification).

## Key API changes 🔑

1. **Recurrence is no longer returned in enrichment**: Recurrence calculation has been moved outside of the main
   enrichment pipeline, allowing faster enrichment and processing times. Recurrence is available in the account
   holders resource, please refer to [Recurrence](/enrichment/recurrence) for more details.
2. **Changes to `/v2/transactions`**: Historically, we have had several ways to
   submit transactions according to the needs of your application. However, it led to the ambiguous case of
   whether to submit multiple transactions to `/v2/transactions` or a batch to `/v2/transactions/async`. For this
   reason, we decided to deprecate the former and to introduce the [Batch API](/batches) for the latter. For
   low-latency use the sync endpoint for single transactions `/v3/transactions`, otherwise the batch API for improved
   throughput.
3. **Changes to enrichment requests**: The interaction between transactions and account holders in the previous API was
   convoluted and error-prone. Account holders are necessary because they provide the account type for categorization
   and a scope for recurrence to run. In this version we changed input transactions to explicitly requiring an account
   holder to be specified - either a valid `id` or `null`. Setting it as `null` disables categorization and recurrence.
4. **Release of the Batch API**: In the previous API tracking batches was made difficult. In this release, it allows
   you to submit transactions, list and fetch results. Batches are now a first-class citizen and we have plans
   of extending it with more types of resources in the future.
5. **Transaction schema changes**: Transactions now have a much different schema. We have segregated the enrichment
   output fields according to the features we provide allowing greater flexibility. More details of it
   in [Transactions](/enrichment/introduction).
6. **Bank statements**: Bank statements where originally developed with the intention of only returning transactions
   already enriched. We have received your feedback and decided to decouple the enrichment process from the extraction
   process, resulting in a much cleaner interface to access the raw extracted data. The raw extracted data is made to
   still be compatible with the enrichment interface so that the integration is seamless. To enrich bank statement
   extracted transactions please refer to [this](/bank-statements#enriching-transactions) guide.
7. **Reporting wrong results**: We have revamped reporting in this release by standardizing its schema, standardizing
   the event schema and by integrating it with the new webhooks. Please refer to [Reports](/enrichment/reports) for
   more details.
8. **Consistency improvements across resources**: We have added listing, retrieval and deletion methods where
   appropriate for the majority of the API resources.

-------------------------------------------------
We hope these updates empower you to do even more with our platform! Please [reach out](/support) to us
with questions, feedback, or any suggestions for future releases.