Overview
Before you proceed with this section, we recommend that you read Processing Authorization first.
A CAPTURE transaction is a crucial step in the payment process, used to finalize a previously authorized transaction. This action flags the authorization for settlement, which will be processed at the next scheduled settlement time. The key requirement for initiating a capture transaction is the transactionId from the initial authorization transaction.
Note
Authorization and Capture transactions are components of the CIT environment as they are not necessarily regarded as recurring MIT payments. However, a sale transaction is essentially
authorization + capture. For information on that use case, see Customer and Merchant Initiated Transactions | Merchant Subsequent - Authorization TransactionThis transaction does not fall specifically under Card Present or Card Not Present categories. It allows for all POS profiles. Captures can be issued for both CP and CNP transactions using their respective transaction IDs. In the case of the
deviceProfileparameter, check out API References for all the available body parameters and enumerations.
Sample Request
POST /api/v4/accounts/{accountId}/payments/{transactionId}/capture
{accountId}value in the path is the PayConex™ account ID number.{transactionId}value in the path is the authorizationtransactionIdto capture.
{
"posProfile": "ECOMMERCE"
}
*Required Scopes: pcx:payments:*, pcx:payments:device:*, pcx:payments:card_not_present:*, pcx:payments:capture
Note
For the rest of the parameters optional for this request such as
amounts,deviceProfile(for capturing CP authorizations),trace, check out API Reference | Capture Authorization.To check out one of the most common use cases of capture, see Online Tip Transaction Processing.
Once an authorization transaction is captured at least once, transactionType becomes SALE and status becomes CAPTURED.
Compare the following two.
Authorization Transaction
{
"transactionId": "000000046746",
"status": "AUTHORIZED",
"timestamp": "2025-04-03T14:45:38.000000Z",
"customer": {
"name": "Alice",
"billingAddress": {
"address1": "address1",
"address2": "address2",
"city": "My City",
"state": "MO",
"zip": "90210",
"country": "USA",
"company": "Acme Inc."
}
},
"shippingAddress": {
"address1": "address1",
"address2": "address2",
"city": "My City",
"state": "MO",
"zip": "90210",
"country": "USA",
"company": "Acme Inc.",
"recipient": "Alice Smith"
},
"trace": {
"history": [
{
"action": "authorization",
"requestId": "e77853d2-72a7-43f4-b2e5-32e611c42330",
"correlationId": "5431fa60-c234-41f5-959e-71d1f3fa6d6f",
"timestamp": "2025-04-03T09:45:35-05:00"
}
],
"networkTransactionId": "015093645028527G012"
},
"amounts": {
"currency": "USD",
"approved": "10.00",
"requested": "10.00",
"balance": "10.00"
},
"auth": {
"code": "OK0200",
"processorMessage": "APPROVED",
"message": "APPROVED",
"networkName": "VISA",
"avsResponseCode": "Y"
},
"card": {
"name": "Alice",
"last4": "1111",
"expiry": "1225",
"brand": "VISA"
},
"binData": {
"program": "UNKNOWN"
},
"transactionType": "AUTHORIZATION",
"entryMode": "KEYED",
"refundObject": {
"refundBalance": "10.00"
}
}
Captured Authorization
POST /api/v4/accounts/{accountId}/payments/000000046746/capture
*Required Scopes: pcx:payments:*, pcx:payments:device:*, pcx:payments:card_not_present:*, pcx:payments:capture
{
"transactionId": "000000046746",
"status": "CAPTURED",
"timestamp": "2025-04-03T14:48:54.000000Z",
"customer": {
"name": "Alice",
"billingAddress": {
"address1": "address1",
"address2": "address2",
"city": "My City",
"state": "MO",
"zip": "90210",
"country": "USA",
"company": "Acme Inc."
}
},
"shippingAddress": {
"address1": "address1",
"address2": "address2",
"city": "My City",
"state": "MO",
"zip": "90210",
"country": "USA",
"company": "Acme Inc.",
"recipient": "Alice Smith"
},
"trace": {
"history": [
{
"action": "authorization",
"requestId": "e77853d2-72a7-43f4-b2e5-32e611c42330",
"correlationId": "5431fa60-c234-41f5-959e-71d1f3fa6d6f",
"timestamp": "2025-04-03T09:45:35-05:00"
},
{
"action": "capture",
"requestId": "11002d0e-62ed-4fee-8bba-944e5b269912",
"correlationId": "1e54498e-3d89-4033-99ff-756d63a32404",
"timestamp": "2025-04-03T09:48:52-05:00"
}
],
"networkTransactionId": "015093645028527G012"
},
"amounts": {
"currency": "USD",
"approved": "10.00",
"requested": "10.00",
"balance": "10.00"
},
"auth": {
"code": "OK0200",
"processorMessage": "APPROVED",
"message": "APPROVED",
"avsResponseCode": "Y"
},
"card": {
"name": "Alice",
"last4": "1111",
"expiry": "1225",
"brand": "VISA"
},
"binData": {
"program": "UNKNOWN"
},
"transactionType": "SALE",
"entryMode": "KEYED",
"refundObject": {
"refundBalance": "10.00"
}
}
As mentioned in Processing Authorization, capturing can happen more than once, which makes it suitable when the customer partially adds to the total of the authorized transaction amount.
Cannot capture refunded transaction
If the merchant processes an authorization, captures it, and refunds it (either fully or partially) - the authorization transaction cannot be captured again with the V4 API returning the following error:
{ "message": "Cannot capture refunded transaction", "errorCode": 40001, "errorType": "invalid_request", "traceId": "b1b1c8b9-d6ca-4578-aff5-68c9eb5e7585" }
