Capture a preauthorisation

Capture an authorisation made with COPYandPAY or SERVER-TO-SERVER

To request clearing for previously authorised funds, use a capture request.

To perform a capture, you will need a previous pre-authorisation (PA) transaction. You can perform a pre-authorisation using the PA payment type with the COPYandPAY API or the SERVER-TO-SERVER API.

Capture request

You will need the payment id of the PAtransaction. Send a POST request with a CP payment type over HTTPS to the /payments/{id} endpoint.

You can perform a capture of the full or partial amount of the PA, and you can perform multiple partial captures for the same PA.

curl "https://test.oppwa.com/v1/payments/{id}" \
-d "entityId={channelId}" \
-d "amount=4000.00" \
-d "currency=EUR" \
-d "paymentType=CP" \
-d "merchantTransactionId=P188" \
-d "testMode=EXTERNAL" \
-H "Authorization: Bearer {auth_token}"

Example PA capture sequence

Here is an example of the first part of the JSON response to a PA transaction made with COPYandPAY. The payment id is the first attribute in the response.

{
  "id":"8ac7a4a09136ba2801913706f2a221bf",
  "processingEntityId":{channelId},
  "paymentType":"PA",
  "paymentBrand":"MASTER",
  "amount":"4000.00",
  "currency":"EUR",
  "descriptor":"3397.4712.1951 ECOMChannel",
  "merchantTransactionId":"P155",
  "result":{
    "cvvResponse":"U",
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
  },

Here is an example of a cURL request to capture this payment.

curl "https://test.oppwa.com/v1/payments/8ac7a4a09136ba2801913706f2a221bf" \
-d "entityId={channelId}" \
-d "amount=4000.00" \
-d "currency=EUR" \
-d "paymentType=CP" \
-d "merchantTransactionId=P188" \
-d "testMode=EXTERNAL" \
-H "Authorization: Bearer {auth_token}" 

Example capture response

Here is the JSON response to the successful capture request. Note that in the test environment, the value of testMode of the CP must be the same as the value of the PA.

{
  "id": "8ac7a4a09136ba2801913734d9e253d8",
  "referencedId": "8ac7a4a09136ba2801913706f2a221bf",
  "paymentType": "CP",
  "amount": "4000.00",
  "currency": "EUR",
  "descriptor": "7257.6024.8607 ECOMChannel",
  "merchantTransactionId": "P188",
  "result": {
    "code": "000.100.112",
    "description": "Request successfully processed in 'Merchant in Connector Test Mode'"
  },
  "resultDetails": {
    "ExtendedDescription": "Successful",
    "clearingInstituteName": "SecureTrading Omnipay Demo",
    "ConnectorTxID1": "8ac7a0b39134af7f01913734da5f0c39",
    "ConnectorTxID3": "885921||true|UMCC635276   ||0809|713| ||RECURRING|80||false|false|false|812||422212885921|00|||1||0809120526|||||||||||||Berlin|",
    "ConnectorTxID2": "732104|",
    "AcquirerResponse": "0000.0000.0000",
    "reconciliationId": "7257.6024.8607",
    "clearingCutOff": "2024-08-09 22:15:00.0",
    "merchantAccountId": "8ac7a4c890fc748b0190fe70998c0248"
  },
  "customer": {
    "merchantCustomerId": "CUST12"
  },
  "buildNumber": "174903ec91870d5654938dd40f55da3b35036b23@2024-08-08 12:50:27 +0000",
  "timestamp": "2024-08-09 12:54:56+0000",
  "ndc": "8ac7a4c890fc748b0190fe6ad56b0241_9ac1d0bb8cdc4136ae0d1dd99e80100f",
  "source": "OPP",
  "paymentMethod": "CC",
  "shortId": "7257.6024.8607"
}

For full details of how to interpret the payment response, see Transaction results.

For the gateway documentation of the Backoffice API, see Gateway Backoffice API documentation.

Test in the gateway playground

Here is some test data for a capture request in the gateway playground format. You can test this request after a pre-authorisation request in the gateway playground at Gateway playground capture request

entityId={channelId}
amount=4000.00
currency=EUR
paymentType=CP
merchantTransactionId=P188
testMode=EXTERNAL