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

# Callback data

The callback data sent by IXOPAY platform contains all information about the transaction status and details. For a detailed breakdown of the data format, please refer to our [API documentation on the callback event](https://documentation.ixopay.com/api/transaction/callback).

To further enhance your understanding of callback handling in IXOPAY platform, explore the following articles:

* [Response handling](https://documentation.ixopay.com/docs/reference/integration/callbacks/response-handling): Best practices for handling callback responses.
* [Notification types](https://documentation.ixopay.com/docs/reference/integration/callbacks/notification-types): Learn about the different types of notifications sent by IXOPAY platform.

## Additional data

If you require additional per-transaction information to process the notification for your customer's order, you have two options:

1. You can use the optional field `merchantMetaData` when creating a transaction to include any additional data specific to your application. For example:

```json
{
  "merchantTransactionId": "your-unique-identifier",
  "description": "Purchase description shown on credit card statement.",
  "amount": "9.99",
  "currency": "EUR",
  "callbackUrl": "https://api.example.org/callback",
  "merchantMetaData": "someKey=someValue&anything=else"
}
```

> **Tip**
>
> Please note that the maximum length of `merchantMetaData` is currently limited to 255 characters.
>
> * You can use key-value pairs, similar to query-string parameters, to provide the necessary information.
> * Alternatively, you can use escaped JSON to structure the data.
> * If you need to add a significant amount of information, consider using a binary encoding format such as [Protobuf](https://protobuf.dev) and then base64 or base58 encoding it.

2. Alternatively, you can provide the required data as query-string parameters in the `callbackUrl` that you define. For example, you can include the additional data in the URL like this: `https://api.example.org/callback?someKey=someValue&anything=else`.

This flexibility allows you to customize the callback data and include any necessary information to handle the transaction appropriately.