Finalised Event

The Finalised Event is an optional Webhook payload delivered to the issuer as soon as a transaction reaches a terminal state. It provides the complete outcome of the EMV 3DS authentication, including risk evaluation results, challenge details, and device data.

📘

The Finalised Event is configured per Financial Institution. When enabled, Apata sends a POST request to the configured endpoint immediately after each transaction concludes.

📘

See the API reference for the full webhook payload schema.

Payload Structure

The webhook payload contains three main sections: Transaction, Challenges, and Card.

transaction

The full authentication record, including outcome, risk evaluation, merchant details, and device data.

challenges

An array of individual challenge attempts. Present only when a Challenge Flow occurred.

card

Details of the card that was authenticated.


Identifiers
FieldDescription
idUnique transaction identifier generated by the ACS
dsTransactionIdTransaction ID assigned by the DS
threeDsServerTransactionIdTransaction ID assigned by the merchant's 3DS Server
cardProgramIdCard Program used during evaluation
riskProfileIdRisk Profile applied during evaluation
isSimulatedTransactionWhether this is a test or live transaction
Transaction Details
FieldDescription
amountTotal transaction amount
currencyTransaction currency
categoryClassification (payment, non-payment)
transactionTypeType of transaction
channelOrigin channel (Browser Channel, App Channel, 3RI)
dateTransaction initiation date
accountTypeAccount type (credit, debit)
issuingCountryCountry where card was issued
binIssuer's BIN
Merchant Information
FieldDescription
merchantIdMerchant ID assigned by Acquirer
merchantNameMerchant name
merchantCountryMerchant country code
mccMCC (Merchant Category Code)
threeDsRequestorId3DS Requestor ID from DS
threeDsRequestorName3DS Requestor name
threeDsRequestorUrl3DS Requestor website URL
acquirerBinAcquiring institution ID
Authentication Outcome
FieldDescription
stateFinal transaction state (SUCCEEDED, FAILED, REJECTED, etc.)
authenticationValueAuthentication Value (cryptogram) for successful transactions
eciECI representing authentication outcome
exemptionExemption type applied for Frictionless Transactions
errorCodeError code if transaction errored
errorDescriptionError description
reasonReason for failure or rejection
protocolVersionProtocol Version used
Challenge & Preference Flags
FieldDescription
challengePreferenceMerchant's Challenge Preference
decoupledPreferenceMerchant's Decoupled Authentication preference
wasChallengedWhether transaction was challenged
wasFrictionlessWhether transaction was frictionless
wasPresentedChoiceWhether cardholder saw choice screen
didMakeChoiceWhether cardholder made a choice
didWhitelistWhether cardholder Whitelisted merchant
Risk Evaluation
FieldDescription
riskEngineRecommendationRisk engine recommendation
riskRuleIdRisk Rule ID that determined outcome
riskRuleTypeType of risk rule (Conditional, PSD2 Low Value, etc.)
riskProfileVersionRisk Profile version used
riskProfileEvalReasonEvaluation reason when no rule triggered

riskProfileEvalReason values:

ValueDescription
APATA_DEFAULT_ACTIONNo rules triggered; default action is challenge
CHALLENGE_PREFERENCEAcquirer-mandated challenge; rules not executed
CONCURRENT_AREQ_FOR_CARDMultiple concurrent requests for same card
CARD_DISABLEDRejected due to disabled card
NO_RULESNo rules configured; transaction challenged
Device Information
FieldDescription
deviceIPDevice IP address
devicePlatformPlatform (Android, iOS, Windows)
deviceModelDevice model
deviceOsOperating system
deviceOsVersionOS version
deviceLocaleDevice locale
deviceTimezoneDevice timezone
deviceCountryCountry from IP address
deviceLanguageDevice language
deviceScreenHeightScreen height in pixels
deviceScreenWidthScreen width in pixels
deviceLatitudeDevice latitude
deviceLongitudeDevice longitude
deviceAdvertisingIdAdvertising ID
deviceNameDevice name
Browser Information
FieldDescription
browserAcceptHeaderHTTP Accept header
browserJavaEnabledJava enabled
browserJavascriptEnabledJavaScript enabled
browserColourDepthBrowser colour depth
browserUtcOffsetMinutesUTC offset in minutes
browserUserAgentUser Agent string
Currency Conversion
FieldDescription
purchaseAmountInEuroAmount in EUR
purchaseAmountInUSDAmount in USD
purchaseAmountInGBPAmount in GBP
exchangeRateEURExchange rate to EUR
exchangeRateUSDExchange rate to USD
exchangeRateGBPExchange rate to GBP
exchangeRateTimestampExchange rate timestamp
Recurring & Instalment
FieldDescription
recurFrequencyMinimum days between authorisations
recurEndDateEnd date for recurring payments
installmentsMaximum authorisations for instalment plan
Cardholder Data (Hashed)
FieldDescription
emailHashHashed email address
homePhoneHashHashed home phone
mobilePhoneHashHashed mobile phone
workPhoneHashHashed work phone
cardholderNameHashHashed cardholder name
Address Information
FieldDescription
billAddressCityBilling city
billAddressStateBilling state/province
billAddressCountryBilling country
shipAddressCityShipping city
shipAddressStateShipping state/province
shipAddressCountryShipping country
addressesMatchWhether addresses match
SDK & Technical
FieldDescription
sdkTransactionIdSDK transaction ID
sdkAppIdSDK application ID
threeDsServerReferenceNumberEMVCo reference number
threeDsServerOperatorId3DS Server operator ID
renderTypeChallenge display format
isNetworkTokenWhether PAN was detokenized by scheme
avCreationKeyIdAV key ID used
redactedAreqRedacted AReq payload

EMVco Field Mapping

Most fields in the Finalised Event payload are sourced directly from the AReq or generated by the ACS during processing. The table below maps Finalised Event fields to their corresponding EMV 3DS field names. Fields with no EMVco equivalent are computed by Apata.

Finalised Event fieldEMVco field
transaction.idacsTransID
transaction.dsTransactionIddsTransID
transaction.merchantIdacquirerMerchantID
transaction.merchantNamemerchantName
transaction.merchantCountrymerchantCountryCode
transaction.mccmcc
transaction.acquirerBinacquirerBIN
transaction.threeDsRequestorUrlthreeDSRequestorURL
transaction.challengePreferencethreeDSRequestorChallengeInd
transaction.protocolVersionmessageVersion
transaction.channeldeviceChannel
transaction.categorymessageCategory
transaction.transactionTypethreeDSRequestorAuthenticationInd (APP / Browser) or threeRIInd (3RI)
transaction.amountpurchaseAmount
transaction.currencypurchaseCurrency
transaction.recurFrequencyrecurringFrequency
transaction.recurEndDaterecurringExpiry
transaction.installmentspurchaseInstalData
transaction.deviceIPbrowserIP (Browser Channel) or SDK device data fields (App Channel)
transaction.browserUserAgentbrowserUserAgent
transaction.redactedAreqFull AReq payload with PAN and cardholder name removed
transaction.dateApata-generated - no EMVco equivalent
card.idApata-generated - no EMVco equivalent
card.externalIdIssuer-provided via Card Link - no EMVco equivalent
card.schemeDerived from the DS connection - no EMVco equivalent
📘

Fields not listed above (converted purchase amounts, exchange rates, risk evaluation fields, challenge details) are computed by Apata during transaction processing and have no direct EMVco equivalent.

Transaction Category

The transaction.category field uses Apata enum values that map to the EMV 3DS messageCategory codes.

transaction.categoryEMVco messageCategoryDescription
PAYMENT01A payment transaction involving a monetary amount and currency.
NON_PAYMENT02An NPA transaction that validates cardholder identity without a purchase. Amount and currency fields are not applicable.

Transaction Type

The transaction.transactionType field consolidates two separate EMV 3DS fields depending on the Device Channel.

APP and Browser

Maps to threeDSRequestorAuthenticationInd. Describes the type of request, such as payment, recurring, instalment, or add card.

3RI

Maps to threeRIInd. Describes the reason for the merchant-initiated request, such as recurring payment or split shipment. This field is null for APP and Browser transactions.