Capture
Complete an authorised payment.
Capture is the process of securing payments after a successful authorisation. To complete a payment, you go through a two-step process:
- Authorisation
You verify the payment details with the issuer, effectively reserving the necessary funds.
- Capture
After successful authorisation, you initiate the capture, transferring the reserved funds from the customer to your account.
To capture a payment successfully, you must have the unique_id
from the initial authorisation.
Additonally, you can do multiple captures when you need to deliver goods in multiple stages or packages.
Transaction workflow
Here’s a breakdown of the transaction workflow for payment capture:
- Capture request
Following the authorisation of the transaction, you must submit a capture request to the payment processor. Specify the
unique_id
from the initial authorisation transaction as thereference_id
in the capture request. - Funds transfer
The payment processor processes the capture request, transferring the authorised funds from the customer’s account to your account.
- Transaction completion
With the funds successfully captured, the transaction is complete. You can proceed with the order fulfillment or service delivery.
Example of a request:
<payment_transaction>
<transaction_type>capture</transaction_type>
<transaction_id>43672</transaction_id>
<usage>40208 concert tickets</usage>
<remote_ip>245.253.2.12</remote_ip>
<reference_id>119643250547501c79d8295</reference_id>
<amount>100</amount>
<currency>USD</currency>
</payment_transaction>
Example of a response:
<payment_response>
<transaction_type>capture</transaction_type>
<status>approved</status>
<mode>live</mode>
<transaction_id>43672</transaction_id>
<unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
<authorization_code>345678</authorization_code>
<response_code>00</response_code>
<technical_message>Transaction successful!</technical_message>
<message>Transaction successful!</message>
<timestamp>2023-07-12T12:53:41Z</timestamp>
<descriptor>Descriptor one</descriptor>
<amount>100</amount>
<currency>USD</currency>
<sent_to_acquirer>true</sent_to_acquirer>
</payment_response>