Prerequisites
Integration overview
Check out the integration page for an overview of the implementation process.
Workflow configured for transaction and activity monitoring
Confirm your workflow setup
Confirm your workflow setup
Before you can start verifying customers, your account needs to be configured with at least one workflow and one service profile. Your Customer Success Manager typically sets these up for you.You can confirm your setup by calling the GET /v2/workflows endpoint. This will list all the executable monitoring workflows available to you. For Transaction and Activity Monitoring, it is critical to have only one workflow with a lifecyclePhase: MONITORING and monitoringTypes: [“ACTIVITY”]You should receive a 200 OK response with a workflows array. If the array is empty, please contact your Customer Success Manager to get your workflows published.
Request - Get workflows
Response - Get workflows
Next Steps
You’ve successfully authenticated and confirmed your setup. Now you’re ready to start building. Follow our implementation guides for common use cases.Getting started with Transaction and Activity Monitoring
1: Use the Transaction and Activity Monitoring API
Start sending transaction and activity details to FrankieOne by calling Evaluate an activity endpointEvaluate activity request
Evaluate activity request
High-level process flow
Activity evaluation
Activity evaluation
- Customer sends transaction / activity data to FrankieOne.
- FrankieOne will pass the activity data to the service provider
- Frankie checks the entity data store and enrich the customer request with additional data
- Frankie enriches the activity data to the service provider, handling mapping between models
- Vendor assesses the data provided against Customer rules to make a point-in-time evaluation of the activity risk.
- All risks, rules checked and additional evaluation data are returned to FrankieOne
- FrankieOne maps vendor data back to common model
- FrankieOne will persist the resulting evaluation information
- Create the activity record
- Create the device data retrieved from the provider
- Store the evaluation data (risk, signals, etc.)
- Return the evaluation data to the customer for a final risk-based decisioning
- Create the device data retrieved from the provider
- Asynchronous Enhanced Processing – Push an activity event to the internal message queue for enhanced processing.
- The event message is consumed by the internal activity assessment service.
- If the activity does not meet the risk criteria to trigger an alert or further assessment, then no further action is taken.
- If the activity does meet the risk criteria for an alert, it will retrieve the activity data, and create an assessment result which represents the alert details.
- Once done, it will push a message into the workflow engine message queue to trigger relevant monitoring workflows.
- Inside the monitoring workflow, the Activity Monitor Step will consume relevant results to build up a view of alerts that should be actioned.
- This workflow will also generate risk assessments that combine risk factors across the onboarding and monitoring life cycle phases of the relevant entity.
- Create the activity record
The session object
Provides a token to link together activities within the same end-user session. This is important for identifying grouped activities and contributes to risk calculations by allowing FrankieOne to analyze a sequence of user actions as a single, coherent session. For example, all actions from a user login to a significant transaction can be linked together. The session token may be provided to tie in the activity to a longer running overall session. There are a few options for session tokens, including generating one via Create Individual Session or passing an existing one from your system.
The party object
Identifies the individual or organization performing the activity. It’s essential for linking the activity to an existing entity in FrankieOne. Key details include:
-
entityId: The unique identifier for the individual or organization in FrankieOne. -
entityType: Specifies whether the party is an INDIVIDUAL or ORGANIZATION.
addresses, emailAddresses, phoneNumbers, and externalReference (e.g. customer ID in your core banking system) help to give context the party’s profile for more accurate risk assessment.
The details object
Contains specific information about the activity being evaluated.
-
activityType: Categorizes the activity broadly (e.g. TRANSACTION, EVENT). -
eventType: Provides a more granular classification of the activity (e.g.LOGIN,WITHDRAWAL,DEPOSIT,PASSWORD_CHANGE). This is critical for triggering specific rules relevant to the event. -
activityAt: Timestamp of the activity. -
customAttributes: Allows you to pass any additional context-specific data that might be relevant for your custom rules.
2: Review alerts
Once an activity has been deemed to be alerting, relevant workflows will be triggered and the alerts will be consumed and presented in the workflowResult object. This object is the key to understanding the outcome, the reason for any alerts, and the granular details of the checks performed. Operators will typically review these alerts via the Portal, where issues are flagged for manual review.via API
Get the result of the evaluation by calling the Get Workflow Execution Results endpoint. TheworkflowResult object in the response will contain the comprehensive details needed to interpret the outcome.
Get workflow execution result request
Get workflow execution result request
via Portal
To learn how Fraud and Compliance Officers can review alerts generated via Portal here, review Entity View.Interpreting the results
TheworkflowResult object provides a structured, top-down view of the evaluation. Here’s how to interpret the key sections, focusing on Transaction and Activity Monitoring:
Overall outcome (workflowResult top-level fields)
| API | Portal |
|---|---|
workflowExecutionState: This confirms the workflow’s technical status. It must be COMPLETED for the status to be considered final and for you to reliably review the activity’s details. Other states like IN_PROGRESS, ERROR, TIMEOUT, CANCELED, or TERMINATED indicate the workflow did not finish successfully. | Not displayed in Portal |
status : This represents a conclusive recommendation (configured status in your selected workflow) for the activity after evaluation and accounts for any manual overrides. For monitoring workflows, common/preferred statuses include - CLEAR (no negative information found) - REVIEW (requires manual review due to identified issues) | ![]() No issues (CLEAR) ![]() Needs attention (REVIEW) |
result: This field holds the original, automated outcome of the workflow before any manual changes. It is useful for auditing and understanding the system’s initial verdict versus any human intervention. | Not displayed in Portal |
Issues
This array will contain a list of problems that may require manual review. If the status is REVIEW, this array will provide the specific reasons why the activity needs further investigation. For Transaction and Activity Monitoring, this might include flags of different types for unusual transaction patterns, device anomalies, or AML concerns with issueCategory: ACTIVITY. The Portal will display these as “Activity” as seen in the image below.
| Issue Type | Description |
|---|---|
| ACTIVITY_AML | An issue identified during an Anti-Money Laundering (AML) check within the activity monitoring workflow. This could be due to potentially high-risk financial behavior patterns detected during transaction or activity monitoring. |
| ACTIVITY_FRAUD | An issue identified as potential fraud during the transaction and activity monitoring workflow. This can stem from indicators of fraudulent intent related to financial activities. |
| ACTIVITY_EVENT | An issue identified as potential fraud during the activity monitoring workflow. This can stem from indicators that are non-transactional or behavioral by nature such as device anomalies, or unusual login patterns or interactions with the device. |
Workflow step results
TheworkflowStepResults array is a log of each step in the workflow, explaining how the overall status was reached. Each object in this array corresponds to a step configured in your monitoring workflow (e.g. AML check, device check, transaction velocity check).
stepName
stepName
API

stepName: 
stepName:
stepName: The name of the specific step that was executedACTIVITY_AML- a step dedicated to performing AML checks on the activity.ACTIVITY_FRAUD- a step dedicated to performing fraud checks on the activity.

ACTIVITY_AML is available
ACTIVITY_FRAUD is availableresult
result
API


result: The outcome of this specific step. For monitoring, this can be:CLEAR(step passed): The step completed successfully without identifying any issues.HIT(step identified an issue): The step identified a potential issue or match according to its configured rules.ERROR(technical issue with the step): The step encountered an unrecoverable technical error during its execution. Portal
HIT, Expanded view

CLEAR, Expanded view
HIT Expanded viewsummary
summary
API
PortalNot displayed in Portal
summary: A concise, human-readable summary of the step’s outcome.risk
risk
API

risk: The risk assessment specific to this step, including the score it contributed to the overall workflowRiskScore and workflowRiskLevel.Portal

Activity alerts
On evaluations each activity will have activity results but only activity results that are considered “alerting” will represented as Process Result Objects (PROs) that are treated as alerts and considered needs action.
-
processResultId: A unique identifier for this specific piece of evidence. -
systemStatus: The lifecycle status of this PRO (e.g., VALID, STALE, MARKED_INVALID). A STALE status means the underlying entity data has changed since this check was performed and it might need re-evaluation. Only the alerts with a systemStatus: VALID will be displayed in Portal. -
class: The high-level category of the check performed, for Transaction and Activity Monitoring, it’sACTIVITY. -
objectType: The specific data element that was checked (e.g., INDIVIDUAL, TRANSACTION, DEVICE). -
result: The outcome of this specific PRO (e.g., MATCH for a hit, CLEAR for no hit, CREATED for data fetched). -
manualStatus: If an operator has manually reviewed this specific PRO, their conclusion (e.g.,TRUE_POSITIVE,FALSE_POSITIVE,IN_REVIEW) is recorded here. This is directly linked to the statuses described in Section 3. -
providerResult: An object containing details from the downstream data provider, including the source of the data. -
supplementaryData: A rich, context-specific object containing detailed metrics or extracted data, like AML hits details or specific device intelligence data. This is where most of the alerts or rows in the table gets its details as seen in the Portal.
3: Resolve alerts
| Portal display | API manualStatus | Description |
|---|---|---|
| Null | Indicates that the alert requires review and resolution. | |
| IN_REVIEW | Indicates that the alert is being actively investigated or reviewed. | |
| TRUE_POSITIVE_REJECT | Indicates that the activity was confirmed or suspected to be fraudulent or high-risk, and the associated activity was rejected (e.g. transaction blocked). | |
| TRUE_POSITIVE_ACCEPT | Indicates that the activity was confirmed or suspected to be fraudulent or high-risk, and the associated activity was accepted (e.g. transaction approved with override). | |
| FALSE_POSITIVE | Indicates the alert was reviewed, and confirmed or assumed to be genuine or low-risk. |
via API
Given the activity results update its status by calling Update Activity results endpointvia Portal
Features4: Re-evaluate the results
Once all alerts have been resolve, you must re-run the workflow for the entity.-
To update the
status: The overallworkflowResult.statuswill only be changed by the system fromREVIEWtoPASSorCLEARafter the workflow is executed again and the steps included in the monitoring workflow confirms that no unresolved hits remain. -
To clear
issues: The re-execution will cause the steps to re-evaluate the issues. If all PROs that previously caused anACTIVITYissue are now classified asFALSE_POSITIVE, the issue will be cleared from the workflow result.
via API
To trigger a re-evaluation via API, you will execute the workflow again. Refer to the Execute a workflow for the given service profile documentation.via Portal
The Portal will automatically re-run the workflow for you once all alerts associated with an activity have been resolved (i.e. no alerts with “Needs attention” and “In review” status remain).Detecting manual overrides
It’s crucial to know if a workflow’s result was changed by a person. When an operator manually changes the status (e.g., fromFAIL to PASS), the following fields are populated:
-
statusOverrideRequestId: The unique ID of the override request. -
statusOverrideBy: The user who performed the override. -
statusOverrideAt: The timestamp of the override.
statusOverrideRequestId exists and is not empty.
5: (Optional) Retrieve all activities
Fetch historical information about the transactions to help get context of the user behavior and investigate.Get Activities request
Get Activities request
Error handling
The FrankieOne API uses a standardized error format to ensure that you can reliably handle issues that arise from bad requests, server problems, or invalid data. All non-2xx responses will return a consistent JSON error object. Please refer to the general API Error Codes documentation for a comprehensive list of error types and their meanings. This document replaces any specific error handling guides for individual products unless explicitly stated otherwise.Scenarios
Generic Bad request
Generic Bad request
HTTP Status Code : Frankie Error Code
400 : VAL-0400Bad request - Validation issues (Any business or process validation)
Bad request - Validation issues (Any business or process validation)
HTTP Status Code : Frankie Error Code
400 : VAL-0400Bad request - Schema issues
Bad request - Schema issues
- Invalid limit or page parameter
beforeActivityAtis earlier thanafterActivityAt- Invalid sortField other than
activityAt afterActivityAtis in the future
400 : VAL-0400Bad request - Entity not found
Bad request - Entity not found
HTTP Status Code : Frankie Error Code
400 : VAL-0404Duplicated transactions
Duplicated transactions
HTTP Status Code : Frankie Error Code
409 : VAL-0409System errors
System errors
HTTP Status Code : Frankie Error Code
500 : SYS-500
