# Advanced Usage

This page covers the configuration of specific features and advanced functionalities for Next.js.

## <mark style="color:red;">Configuring 3D Payment Based on Country​</mark> <a href="#configuring-3d-payment-based-on-country" id="configuring-3d-payment-based-on-country"></a>

To enable or disable 3D Payment selectively for different countries, set the `use_three_d` parameter to `false` in the `useCompleteCreditCardPaymentMutation` as provided below:

```
const [completeCreditCardPayment] = useCompleteCreditCardPaymentMutation();

const response = await completeCreditCardPayment({
  ...data,
  use_three_d: false
}).unwrap();
```

## <mark style="color:red;">Removing Experimental or Other Options from Next Config​</mark> <a href="#removing-experimental-or-other-options-from-next-config" id="removing-experimental-or-other-options-from-next-config"></a>

To remove experimental flags from your `next.config.js` file, use the following code:

```
const enhancedConfig = withPzConfig(nextConfig);

// ...

delete enhancedConfig.experimental.serverActions;
```

## <mark style="color:red;">Customizing Response in Middleware.ts​</mark> <a href="#customizing-response-in-middlewarets" id="customizing-response-in-middlewarets"></a>

If you use a custom response such as NextResponse.json(), make sure to set the `pz-override-response` header to `true`, as provided below. Otherwise, you will get a 404 error.

```
const middleware: NextMiddleware = (
  req: PzNextRequest,
  event: NextFetchEvent
) => {
  if (myCondition) {
    return NextResponse.json({ status: 'ok' }, { headers: { 'pz-override-response': 'true' } });
  }

  return NextResponse.next();
};
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.akinon.com/technical-guides/project-zero/next.js/advanced-usage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
