Skip to content

Capture

Transfer authorised funds to your account and complete a POS transaction.

Capture a transaction

Request example

Use the following request to capture a previously authorised transaction.

val captureRequest = TransactionRequest(
  merchantTransactionId = "CAPT-001",
  merchantTransactionDate = OffsetDateTime.now(),
  amounts = Amounts(transaction = amount), 
  merchantDeeplink = "app://merchantapp/return",
  systemTransactionId = "ORIGINAL-TRANSACTION-ID"
  operation = OperationType.Capture
)
PropertyDescription
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 Capture.

Possible values:
  • Incremental
  • Capture
  • FinalCapture
  • Refund
  • Void

Response example

If your request is successful, you'll receive a response containing a new systemTransactionId and an updated state. You'll also receive a Transaction (Card Captured) 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"
    )
  )
)
PropertyDescription
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.