Capture the Order
An order can be captured fully or partially. The amount
parameter in the capture request must be equal to the order's actual_amount
value for a full capture.
Multiple captures are not allowed.
The Correct Sequence of Steps for the Capture Operation
The capture operation is used to charge an amount that was previously held on a card.
- Hold the Amount:
- This must be done using a pre-payment request with the parameter
preauth = Y
. - See pre-payment request for details.
- This must be done using a pre-payment request with the parameter
- Two-Stage Payment Process:
- Stage 1: The payment operation holds the amount.
- Stage 2: The capture process finalizes the transaction.
The pre-payment and capture operations are only available for card payments. Other payment methods follow a one-stage flow where the full amount is charged automatically.
Reverse of Pre-Payment
If the capture operation has not yet been completed, then:
- The acquiring fee is not charged for pre-payment and reverse operations.
- An instant cancellation of the held amount occurs upon reversal.
- Only a full reversal is allowed (partial reversals are not supported for pre-payment).
If a partial capture is performed, the remaining amount is automatically refunded to the payer’s card.
If a pre-payment of 1000 was held, but only 800 needs to be captured, the remaining 200 will automatically return to the payer’s card. A separate reversal of 200 should not be processed, or the 200 will be refunded twice.
Key Rules:
- Only one full/partial capture is allowed for pre-payment transactions.
- For captured payments, multiple sequential partial reversals are supported.
Idempotent Capture Key
Unlike other API operations, capture requests do not require an idempotent key.
- If a capture retry is made with the same
amount
, the system will return the currentcapture_status
of the payment.
Endpoint for Order Capture
Capture the Order
POST /api/capture/order_id
This endpoint expects a POST request in JSON format with the required parameters.
A successful response will contain the capture_status
parameter to indicate whether the capture was completed.
Request and Response Examples
- Request
- Normal Response
- Response in case of error
curl -L 'https://pay.fondy.eu/api/capture/order_id' \
-H 'Content-Type: application/json' \
-d '{
"request": {
"version": "1.0.1",
"order_id": "test_12343242113",
"currency": "GEL",
"merchant_id": 1549901,
"amount": 100,
"signature": "1efcb015c89da38977ae1e734aade413b95ca900"
}
}'
{
"response": {
"capture_status": "captured",
"order_id": "test_12343242113",
"response_description": "",
"response_code": "",
"merchant_id": 1549901,
"response_status": "success"
}
}
{
"response": {
"error_code": 1007,
"error_message": "Parameter `signature` is incorrect",
"request_id": "HGh7ami3WN0ci",
"response_status": "failure"
}
}