Skip to main content

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.

Note

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.

  1. Hold the Amount:
    • This must be done using a pre-payment request with the parameter preauth = Y.
    • See pre-payment request for details.
  2. Two-Stage Payment Process:
    • Stage 1: The payment operation holds the amount.
    • Stage 2: The capture process finalises the transaction.
Important

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.

Example

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 current capture_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​

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": "GBP",
"merchant_id": 1549901,
"amount": 100,
"signature": "1efcb015c89da38977ae1e734aade413b95ca900"
}
}'