Limiting the auto-capture amount
How to enable the auto-capture option only for orders under a certain amount
Problem
You have enabled the auto-capture option for a payment method, but you still want to require a manual capture for orders with a total amount over a specified threshold.
Solution
To add such a constraint, send a PATCH request to the /api/payment_methods/:id endpoint, using the auto_capture_max_amount_cents attribute value to set the amount over which you want the auto-capture option to be disabled.
Example
The following request updates the payment method identified by the "hJGrTfdaEW " ID to automatically disable the auto capture for orders with a total amount over €2000:
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": {
      "auto_capture": true,
      "auto_capture_max_amount_cents": 200000
    }
  }
}'On success, the API responds with a 200 OK status code, returning the updated payment method object:
{
  "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, 
      "auto_capture": true, 
      "disabled_at": null, 
      "price_amount_cents": 0, 
      "price_amount_float": 0.0,
      "formatted_price_amount": "€0,00", 
      "auto_capture_max_amount_cents": 200000, 
      "auto_capture_max_amount_float": 2000.0, 
      "formatted_auto_capture_max_amount": "€2000,00",
      "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"
    }
  }
}More to read
See our documentation if you need more information on how to update a payment method.
Last updated

