Enabling the auto-capture
How to enable the auto-capture option for a selected payment method
You want to enable the auto capture option for a payment method, in order to automatically settle the payment upon authorization.
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
.Request
Response
The following request updates the payment method identified by the "hJGrTfdaEW " ID to enable the auto-capture:
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
}
}
}'
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": 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"
}
}
}
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
. Some payment gateways (e.g. 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).
For some payment gateways (e.g. 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).
Payment instruments support
Some gateways' payment instruments (e.g. AliPay and WeChat via Adyen) 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
.Last modified 6mo ago