Operations
Models and methods for fetching and deciding on security operations (transactions).
TFOperation
Represents a security operation pending or already decided for a profile.
- iOS (Swift)
- Android (Java)
public struct TFOperation {
public typealias RawIdentifier = Identifier<Self, String>
public typealias ID = RawIdentifier
public let id: ID
public var applicationProfileID: TFApplicationProfile.ID?
public let type: OperationType
public let status: Status
public let action: String
public let text: String?
public let risk: Risk
public let params: [Param]?
public let riskModules: [String: RiskModule]?
public let decisionData: DecisionData?
public var data: [String: AnyDecodable]? { get }
public var creationDate: Date { get }
/// Only available for non-pending operations.
public var decicionDate: Date? { get }
/// Not set if operation details are incomplete.
public var requiredAuthentications: [TFAuthenticationMechanism]? { get }
}
public class TFOperation implements Serializable {
public String getTransactionId()
public String getType()
public OperationType getOperationType()
public String getAction()
public String getMessage()
public long getTransactionState()
public Status getStatus()
public Risk getTransactionRisk()
public Date getCreatedDate()
public Date getDecidedDate()
public List<TransactionParameterDTO> getTransactionParameterList()
public Map<String, TransactionRiskModuleDTO> getRiskModules()
public List<String> getRequiredAuthenticationList()
public TFApplicationProfile.Id getApplicationProfileId()
public TFOperationDecisionData getDecisionData()
public boolean isDetailsAvailable()
public boolean isNeedPin()
public boolean isNeedBiometric()
}
getType()returns a rawString— usegetOperationType()for the typed enum.getTransactionState()returns a rawlong— usegetStatus()for the typed enum.
TFOperation.Status
The decision status of an operation.
- iOS (Swift)
- Android (Java)
public enum TFOperation.Status: Int64, Codable, CaseIterable {
case accepted
case declined
case expired
case pending
case failed
case noAnswer
case nonDecidable
case notPending
case unknown
}
public enum Status {
DECLINED,
ACCEPTED,
EXPIRED,
NON_DECIDABLE,
PENDING,
FAILED,
NO_ANSWER,
NOT_PENDING,
UNKNOWN
}
TFOperation.Risk
The risk level associated with an operation.
- iOS (Swift)
- Android (Java)
public enum TFOperation.Risk: String, Decodable {
case low
case medium
case high
case noRisk
}
public enum Risk {
HIGH,
MEDIUM,
LOW,
NONE
}
iOS
noRiskmaps toNONE.
TFOperation.OperationType
The type of an operation.
- iOS (Swift)
- Android (Java)
public enum TFOperation.OperationType: Codable, Equatable {
case normal
case actionable
case generic
case sibs3ds
case sibs3dsV2
case unknown(String)
}
public enum OperationType {
NORMAL,
ACTIONABLE,
GENERIC,
SIBS_3DS,
SIBS_3DS_V2,
UNKNOWN
}
Use
TFOperation.getOperationType()to get the typed enum.getType()returns a rawString.
TFOperation.Param
A key-value parameter attached to an operation, optionally carrying auxiliary and risk metadata.
- iOS (Swift)
- Android (Java)
public struct TFOperation.Param: Decodable {
public struct Aux: Decodable {
public let currency: String?
public init(currency: String?)
}
public struct Risk: Decodable {
public let level: TFOperation.Risk
public let message: String?
public init(level: TFOperation.Risk, message: String?)
}
public let name: String
public let value: AnyDecodable
public let aux: Aux?
public let risk: Risk?
public init(name: String, value: AnyDecodable, aux: Aux?, risk: Risk?)
}
public class TransactionParameterDTO implements Serializable {
public String getName()
public String getValue()
public RiskDTO getRiskDTO()
public AuxDTO getAuxDTO()
}
public class RiskDTO implements Serializable {
public String getLevel()
public String getMessage()
}
public class AuxDTO implements Serializable {
public String getCurrency()
}
TFOperation.RiskModule
Contains risk analysis output from an agent module, including interactive action hints.
- iOS (Swift)
- Android (Java)
public struct TFOperation.RiskModule: Decodable {
public struct AgentModuleOutput: Decodable {
public struct Action: Decodable {
public struct Params: Codable {
public let title: String?
public let coordinates: [String: Float]?
public let pinpoint: [String: String]?
public let url: String?
}
public let type: String
public let params: Params?
}
public let risk: TFOperation.Risk
public let message: String?
public let onTap: Action?
public let onSwipeLeft: Action?
public let onSwipeRight: Action?
public let onForceTouch: Action?
public let onLongPress: Action?
}
public let agentModuleOutput: AgentModuleOutput
}
public class TransactionRiskModuleDTO implements Serializable {
public ModuleItemDTO getModuleItemDTO()
}
public class ModuleItemDTO implements Serializable {
public String getRisk()
public String getMessage()
public ModuleEventDTO getOnTap()
public ModuleEventDTO getOnSwipeLeft()
public ModuleEventDTO getOnSwipeRight()
public ModuleEventDTO getOnForceTouch()
public ModuleEventDTO getOnLongPress()
}
public class ModuleEventDTO implements Serializable {
public String getType()
public ModuleEventParamsDTO getParams()
}
public class ModuleEventParamsDTO implements Serializable {
public String getTitle()
public CoordinatesDTO getCoordinates()
public ModuleEventParamsPinPointDTO getPinPoint()
public String getUrl()
}
TFOperation.DecisionData
Data available on already-decided operations.
- iOS (Swift)
- Android (Java)
public struct TFOperation.DecisionData {
public let authentications: [String]?
public let device_info: TFApplicationProfileDevice?
}
public class TFOperationDecisionData {
public List<String> getAuthentications()
public TFApplicationProfileDevice getDeviceInfo()
}
TFOperationDecisionResult
The result of approving or rejecting an operation.
- iOS (Swift)
- Android (Java)
public struct TFOperationDecisionResult {}
public class TFOperationDecisionResult {}