> Documentation index: [Saleor](/llms.txt) · [This section](/upgrade-guides/llms.txt)
> Source: https://docs.saleor.io/upgrade-guides/core/3-15-to-3-16

# Upgrading From 3.15 To 3.16

<a id="customeripaddress-field"></a>

## `customerIpAddress` field

Saleor 3.16 added `customerIpAddress` to [`TRANSACTION_INITIALIZE_SESSION`](/api-reference/payments/objects/transaction-initialize-session.md) and [`TRANSACTION_PROCESS_SESSION`](/api-reference/payments/objects/transaction-process-session.md) webhooks.

This field is calculated based on the request's IP address. It might be consumed by Payment App and passed to a payment provider for fraud checking.

danger

If you are making requests on behalf of your customers (for example if you use a proxy or have a backend-for-frontend architecture), make sure to provide `customerIpAddress` parameter in [`transactionInitialize`](/api-reference/payments/mutations/transaction-initialize.md#customer-ip-address) and [`transactionProcess`](/api-reference/payments/mutations/transaction-process.md#customer-ip-address) mutations:

Not providing `customerIpAddress` will result in an incorrect calculation of IP Address by Saleor that is sent to the Payment App, which might cause transactions to fail.

Future Saleor version might make this field required if called by an app.

To see an example how `customerIpAddress` might be consumed by a Payment App, [see Adyen App docs](/developer/app-store/apps/adyen/overview.md#transactions-rejected-due-to-fraud)
