Cancel a transaction before settlement.
Use the following request to void a transaction before settlement.
val voidRequest = TransactionRequest(
merchantTransactionId = "VOID-001",
merchantTransactionDate = OffsetDateTime.now(),
amounts = Amounts(transaction = amount),
merchantDeeplink = "app://merchantapp/return",
systemTransactionId = "ORIGINAL-TRANSACTION-ID",
operation = OperationType.Void
)
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 Void .Possible values:
|
If your request is successful, you'll receive a 200
response containing a new systemTransactionId
and an updated state
. You'll also receive a Transaction (Card Cancelled) 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:
|
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. |