Final capture

Capture the final part of funds and mark an authorisation as completely captured.

Fully capture a transaction

Request example

Use the following request to perform a final capture.

val finalCaptureRequest = TransactionRequest(
  merchantTransactionId = "FINA-001",
  merchantTransactionDate = OffsetDateTime.now(),
  amounts = Amounts(transaction = amount), 
  merchantDeeplink = "app://merchantapp/return",
  systemTransactionId = "ORIGINAL-TRANSACTION-ID",
  operation = OperationType.FinalCapture
)

Property

Description

merchantTransactionId
string (≤ 50 characters)

The unique identifier for this transaction, as chosen by you.

merchantTransactionDate
OffsetDateTime

The date and time when the initial transaction happened, in ISO 8601 format.

amounts
object

Details about the transaction amount.

merchantDeeplink
string

The URL that the SDK will navigate back to upon transaction completion, if applicable. For more information, see Callback navigation.

systemTransactionId
string

The unique systemTransactionId associated with the transaction you want to modify.

operation
Operation

The type of modification that you want to make. Set this to FinalCapture.

Possible values:

  • Incremental
  • Capture
  • FinalCapture
  • Refund
  • Void

Response example

If your request is successful, you'll receive a response containing a new systemTransactionId. You'll also receive a Transaction (Card Authorised) webhook notification.

structureTransactionResponse(
  state = "Captured",
  stateData = StateData(
    code = "Success",
    message = "Transaction successful"
	),
  approvalCode = "123456",	
  merchantTransactionId = "MERCH-001",
  merchantTransactionDate = "2024-03-19T10:30:00Z",
  systemTransactionId = "PXP-123456789",
  providerTransactionId = "PROV-987654321",
  fundingData = FundingData(
    maskedPrimaryAccountNumber = "************1234",
    expiryMonth = "12",
    expiryYear = "2025",
    cardScheme = "Visa",
    gatewayTokenId = "123e4567-e89b-12d3-a456-426614174000",
    emvDataResponse = EmvDataResponse(
      applicationId = "A0000000031010",
      applicationLabel = "VISA CREDIT",
      authorisationResponseCode = "00",
      cardHolderVerificationMethodResults = "410000",
      panSequenceNumber = "01",
      preferredName = "VISA CREDIT"
    ),
    providerResponse = ProviderResponse(
      provider = "PROVIDER_NAME",
      code = "00",
      message = "Approved",
      merchantId = "MERCH123",
      terminalId = "TERM456",
      paymentAccountReference = "PAR-123456",
      schemeTransactionId = "VISA-789012"
    )
  )
)

Property

Description

state
string

The current state of the transaction.

Possible values:

  • Authorised
  • Captured
  • Cancelled
  • Error
  • Refused

stateData
object

Details about the state.

stateData.code
string

The state code.

stateData.message
string

The state message.

approvalCode
string

A unique identifier code provided by the authorising entity, indicating approval or reference for the transaction. This code typically consists of alphanumeric characters, starting with an uppercase letter, and serves as a key reference for authorisation verification.

merchantTransactionId
string

The merchant transaction ID.

merchantTransactionDate
date-time

The date and time when the transaction happened, in ISO 8601 format.

systemTransactionId
string

The system transaction ID.

providerTransactionId
string

The transaction ID set by the provider.

fundingData
object

Details about the funding method.

fundingData.maskedPrimaryAccountNumber
string

The masked primary account number.

fundingData.expiryMonth
string

The card's expiry month (MM).

fundingData.expiryYear
string

The card's expiry year (YYYY).

fundingData.cardScheme
string

The card scheme.

fundingData.gatewayTokenId
string

The gateway token ID.

fundingData.emvDataResponse
object

Details about the EMV (Europay, Mastercard, and Visa) response.

fundingData.emvDataResponse.applicationId
string

EMV tag 9F06: a unique identifier for the application, according to ISO/IEC 7816-5.

fundingData.emvDataResponse.applicationLabel
string

EMV tag 50: a mnemonic associated with the Application Identifier (AID) according to ISO/IEC 7816-5 ().

fundingData.emvDataResponse.authorisationResponseCode
string

The authorisation response code.

fundingData.emvDataResponse.cardHolderVerificationMethodResults
string

EMV tag 9F34: the results of the last cardholder verification method performed.

fundingData.emvDataResponse.panSequenceNumber
string

EMV tag 5F34: the PAN sequence number, which identifies and differentiates cards with the same PAN.

fundingData.emvDataResponse.preferredName
string

The preferred name of the application as designated by the card issuer.

fundingData.providerResponse
object

Details about the provider response.

fundingData.providerResponse.provider
string

The name of the provider that processed the transaction.

fundingData.providerResponse.code
string

The raw result code returned by the provider that processed the transaction.

fundingData.providerResponse.message
string

The raw message associated with the result code from the provider that processed the transaction.

fundingData.providerResponse.merchantId
string

The unique identified assigned to you by the provider.

fundingData.providerResponse.terminalId
string

The unique identifier assigned to the terminal by the provider.

fundingData.providerResponse.paymentAccountReference
string

The unique identifier assigned to a payment account, independent of the card number. It remains constant over the account's lifetime, even if the card number (PAN) changes.

fundingData.providerResponse.schemeTransactionId
string

The scheme transaction ID.