# Enabling the auto-capture

## Problem

You want to enable the auto capture option for a payment method, in order to automatically settle the payment upon authorization.

## Solution

To enable the auto-capture option you need to send a `PATCH` request to the `/api/payment_method/:id` endpoint, setting the `auto_capture` attribute to `true`.

### Example

{% tabs %}
{% tab title="Request" %}
The following request updates the payment method identified by the "hJGrTfdaEW " ID to enable the auto-capture:

<pre class="language-javascript"><code class="lang-javascript">curl -g -X PATCH \
  'http://yourdomain.commercelayer.io/api/payment_methods/hJGrTfdaEW' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer your-access-token' \
  -H 'Content-Type: application/vnd.api+json' \
  -d '{
  "data": {
    "type": "payment_methods",
    "id": "hJGrTfdaEW",
    "attributes": {
<strong>      "auto_capture": true
</strong>    }
  }
}'
</code></pre>

{% endtab %}

{% tab title="Response" %}
On success, the API responds with a `200 OK` status code, returning the updated payment method object:

<pre class="language-javascript"><code class="lang-javascript">{
  "data": {
    "id": "hJGrTfdaEW",
    "type": "payment_methods",
    "links": {
      "self": "https://yourdomain.commercelayer.io/api/payment_methods/hJGrTfdaEW"
    },
    "attributes": {
      "payment_source_type": "paypal_payments",
      "name": "Paypal Payment", 
      "currency_code": "EUR", 
      "moto": false, 
      "require_capture": true, 
<strong>      "auto_capture": true, 
</strong>      "disabled_at": null, 
      "price_amount_cents": 0, 
      "price_amount_float": 0.0,
      "formatted_price_amount": "€0,00", 
      "auto_capture_max_amount_cents": null, 
      "auto_capture_max_amount_float": null, 
      "formatted_auto_capture_max_amount": null,
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": null,
      "reference_origin": null,
      "metadata": {}
    },
    "relationships": {
      ...
    },
    "meta": {
      "mode": "test"
    }
  }
}
</code></pre>

{% endtab %}
{% endtabs %}

{% hint style="info" %}
When the auto-capture is enabled, only the authorization is handled by the payment gateway's APIs. If the authorization succeeds, a successful capture is automatically generated by Commerce Layer and the order is marked as `paid`. &#x20;
{% endhint %}

## Additional notes

#### Gateways support

Some payment gateways (e.g. [Axerve](https://docs.commercelayer.io/how-tos/placing-orders/payments/axerve)) don't automatically inherit the auto-capture option from the payment method. In such cases, you need to explicitly act on the gateway's dashboard settings if you want to enable the auto-capture option (about that, please refer to [Axerve documentation](https://docs.axerve.com/en/intro/technical-configurations/merchant-profile)).&#x20;

For some payment gateways (e.g. [Adyen](https://docs.commercelayer.io/how-tos/placing-orders/payments/adyen)) the settings configured on their dashboards overwrite the auto-capture option enabled by the payment method. In such cases, you need to align the gateway internal settings accordingly (about that, please refer to [Adyen official documentation](https://docs.adyen.com/online-payments/capture#automatic-capture)).&#x20;

**Payment instruments support**

Some gateways' payment instruments (e.g. AliPay and WeChat [via Adyen](https://docs.adyen.com/point-of-sale/capturing-payments)) don't support the separation of authorization and capture. In such cases, the capture is automatically generated upon authorization, no matter if the `auto_capture` attribute of the payment method is set to `false`.

#### Order cancellation

If auto-capture is enabled, it's not possible to `void` the created authorization, you need to  `refund` the auto-generated capture. When you cancel an order, Commerce Layer will take care to create the appropriate transaction ([void](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/voids) or [refund](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/refunds), based on the auto-capture settings) for you.

## More to read

See our documentation if you need more information on how to [update a payment method](https://app.gitbook.com/s/RWJeylueWkzLadK710XZ/payment_methods/update).
