FyscalTech
/ AML Solution / Developer Portal
← Back to AML Solution
Documentation

FT AML Platform
Developer Portal

Everything a customer, partner, or implementation team needs to integrate with FT AML — quick start, architecture, data models, integration methods, webhooks, and best practices, explained module by module.

13 modules covered
Step-by-step integration guidance
Built for implementation teams
Explore FT AML → Using the platform? See the User Guide →
Module 01

Introduction

This Developer Portal is the integration reference for the FT AML Platform. It's written for three audiences: customers connecting their own core banking or onboarding systems to FT AML, partners building on top of the platform on a customer's behalf, and Fyscaltech implementation teams delivering a go-live. Wherever a detail depends on your specific deployment — credentials, exact payload schemas, rate limits — this guide says so explicitly rather than guessing, and points you to the Fyscaltech integration team who confirms it during onboarding.

What FT AML does

FT AML is an Anti-Money Laundering (AML) platform that helps financial institutions detect suspicious activity, screen customers against regulatory watchlists, monitor transactions, manage investigations, and comply with AML/CTF regulations. The Developer Portal covers the integration surface of that platform — getting your data in, and getting screening results and alerts back out — rather than the compliance-analyst console itself.

There are three ways data moves between your systems and FT AML

  • Bulk CSV via S3 — for loading or refreshing large volumes of Customer, Customer Account, and Customer Transaction records.
  • Customer Ingestion API — for pushing or updating individual customer records from your own systems as they change.
  • Screening API — for screening a specific customer record on demand, by full name.
Document roadmap. 

This portal is filled in as each piece is confirmed. Arriving tomorrow: the exact CSV file format for all three record types, and a working AWS CLI sample for uploading them. Arriving once ready: Customer Ingestion API and Screening API request/response samples, the webhook payload format and signature verification guidelines, a Postman collection, and an OpenAPI specification.

Who does what

Customers

Own the source data (customers, accounts, transactions) and decide which integration method(s) fit their volume and architecture.

Partners

Build and operate an integration on a customer's behalf, typically under the same credentials and onboarding process as a direct customer.

Implementation teams

Fyscaltech's own team, engaged during onboarding to provision credentials, confirm schemas, and support go-live.

This portal

The shared reference all three groups work from — one source of truth for how integration works, updated as details are confirmed.

Module 02

Quick Start

The fastest path from zero to a working integration follows the same six steps regardless of which integration method you end up using day to day.

  1. Request API credentials — contact the Fyscaltech integration team (see Support) to start onboarding. They'll confirm which integration method(s) fit your use case.
  2. Receive sandbox access — where a sandbox/test environment applies to your chosen method, credentials and connection details are issued as part of onboarding (see Testing & Sandbox).
  3. Upload a sample customer — load a small test file via Bulk CSV, or a single record via the Customer Ingestion API, to confirm your data format is accepted.
  4. Call the Screening API — or trigger screening automatically via the Customer Ingestion API — to confirm a screening result comes back for your test customer.
  5. Receive a webhook — if you're using the ingest-then-screen flow, confirm your endpoint receives and correctly verifies the delivered result.
  6. View the screening result — check the FT AML console (Alert Manager, or Name Screening) to see the same result reflected on the platform side.
Where to start. 

If you're not sure which integration method fits your volume and timeline, read Integration Methods and the "Which one should I use?" table first — then bring that shortlist to the Fyscaltech integration team.

Module 03

Platform & Architecture

FT AML sits alongside your core banking and customer-facing systems, receiving data through the integration methods in this portal and returning screening results, alerts, and case outcomes.

How the pieces fit together

Core Banking / Source Systems
Bulk CSV / Ingestion API
FT AML Platform
Screening & Transaction Monitoring
Case Management
Webhooks / Console

Data enters through one of the ingestion methods, is screened and monitored inside the platform, and any resulting alerts flow into Case Management for investigation — with results delivered back to you either via the console, or via webhook if you're using the ingest-then-screen flow.

Platform objectives

  • Detect suspicious financial transactions by continuously monitoring customer and transaction activity
  • Support banks and financial institutions in complying with applicable AML and Counter-Terrorist Financing (CTF) regulations
  • Assess and calculate customer risk based on configurable risk parameters and business rules
  • Generate timely alerts for unusual or potentially suspicious activity requiring further investigation
  • Enable compliance teams to efficiently investigate, manage, and resolve AML cases
  • Minimize false positive alerts through intelligent rule design and optimized risk assessment
Detailed architecture diagrams 

— including network topology, deployment regions, and data residency options — are provided by the Fyscaltech implementation team during solution design, tailored to your environment.

Module 04

Core Concepts & Data Models

A few ideas come up across all three integration methods. Understanding these up front makes the rest of this portal easier to follow.

Customer Record

The core profile of an individual or organization — the same record whether it arrives via bulk CSV or the Customer Ingestion API.

Customer Account Record

An account belonging to a customer, linked back to its Customer Record.

Customer Transaction Record

A transaction on a customer account, used by Transaction Monitoring once it's in the platform.

Ingestion

The general term for getting any of the three record types into the platform — either as a bulk CSV upload, or one at a time via the Customer Ingestion API.

Screening

Checking a customer against watchlists. Today this is done by full name, via the Screening API or triggered as part of ingestion.

Webhook

An endpoint you host, which the platform calls to deliver a screening result — only relevant if you're using the Customer Ingestion API to trigger screening rather than calling the Screening API directly.

Data models

Five record types recur across ingestion, screening, and case management. The field lists below are indicative — the confirmed schema for each is provided by the Fyscaltech integration team during onboarding.

Customer

customer_id · entity_type
  • full_name — required for screening
  • entity_type — Individual or Organization
  • date_of_birth, citizenship, address — optional, improve match accuracy
  • risk_rating — assigned by the platform after screening

Account

account_id · customer_id
  • customer_id — links back to the owning Customer
  • account_type, currency, open_date
  • status — active, dormant, closed

Transaction

transaction_id · account_id
  • sender_entity_id, receiver_entity_id
  • amount, currency, timestamp
  • country — used by Transaction Monitoring rules

Alert

alert_id · customer_id
  • source — Name Screening or Transaction Monitoring
  • severity, score, sla_deadline
  • status — open, hibernated, escalated

Case

case_id · alert_id
  • assignee, investigator_notes
  • disposition — False Positive, Escalate for SAR/STR, Request Info
  • mlro_approval — recorded once a Compliance Officer/MLRO signs off

Glossary

TermMeaning
AML / CTFAnti-Money Laundering / Counter-Terrorist Financing
PEPPolitically Exposed Person
Full name screeningMatching based on the customer's full name — currently the only field the Screening API supports
Bulk ingestionLoading data via CSV file upload to S3, as opposed to the record-by-record Customer Ingestion API
MLROMoney Laundering Reporting Officer — approves SAR/STR filings
SAR / STRSuspicious Activity / Transaction Report filed with regulators
Module 05

Integration Methods

The three ways data moves between your systems and the FT AML Platform, in detail.

Which one should I use?

MethodBest for
Bulk CSV via S3Initial data loads, and large-volume periodic refreshes of your customer, account, or transaction population
Customer Ingestion APIKeeping individual customer records in sync as they're created or changed in your own system
Screening APIChecking one specific customer by full name at a specific moment — e.g. during onboarding

Bulk data ingestion (CSV via S3)

For loading or refreshing data in volume, the platform reads CSV files uploaded to a dedicated location on AWS S3. Fyscaltech provides this location as part of onboarding — you don't need to request or configure it yourself.

Record typeWhat it covers
Customer RecordsCore customer profile data
Customer Account RecordsAccounts belonging to a customer
Customer Transaction RecordsTransactions on a customer's account, used for Transaction Monitoring

How to upload

  • Prepare your data as a CSV file matching the record type you're loading
  • Upload it to the S3 location provided by the Fyscaltech team, using either the AWS CLI or the AWS Dashboard
  • The platform picks up uploaded files for processing — check FT AML console under Data Ingestion to confirm a file was received and processed successfully

Uploading follows the standard aws s3 cp <local-file> s3://<bucket-path-provided-by-fyscaltech>/ pattern, or the same upload can be done through the AWS Dashboard by navigating to the provided bucket, if you'd rather not use the CLI.

Arriving tomorrow. 

The exact CSV file format — required and optional columns, header row, encoding, and any per-record-type differences — for Customer, Customer Account, and Customer Transaction records, plus a working AWS CLI sample, will be added here once confirmed.

Customer Ingestion API

Ingests or updates a single customer's information from your own system — the API equivalent of a bulk Customer Record upload, but for one record at a time and in near real time as your data changes.

  • Use it to create a new customer record, or update an existing one
  • Can optionally be used to trigger screening on that customer as part of the same call — see Webhooks & Events for how the result comes back

Screening API

Performs screening on a specific customer record on demand.

Current limitation. 

The Screening API currently supports screening by full name only — it does not yet accept the additional matching fields (date of birth, address, citizenship) that Manual Screening in the console supports. Factor this into your matching expectations if you're screening common names.

  • Submit a customer's full name to check it against watchlists
  • Returns a screening result you can use to decide whether to proceed with onboarding or flag the customer for manual review
Note. 

Exact request/response payloads, HTTP methods, and endpoint paths for both APIs — plus cURL, Python, Java, Go, and JavaScript samples — are provided directly by the Fyscaltech integration team during onboarding. This portal will be updated with the literal request/response reference once that specification is finalized.

Module 06

Authentication

Access is set up individually for each of the three integration methods during onboarding with the Fyscaltech team, rather than a single shared credential:

  • Bulk CSV via S3 — Fyscaltech provisions the S3 bucket location your files are uploaded to, along with the AWS access credentials needed to write to it.
  • Customer Ingestion API & Screening API — credentials and connection details for both APIs are issued by the Fyscaltech integration team as part of setting up your organization.
  • Webhook — if you use the Customer Ingestion API to trigger screening, Fyscaltech provides the request format and security guidelines your webhook endpoint should follow to verify that a delivery genuinely came from the platform.

Security best practices

  • Never embed credentials — AWS keys or API credentials — in client-side code (mobile apps, browser JavaScript). Keep them on your backend only.
  • Store credentials in a secrets manager, not in source control or a plain environment file committed to a repo.
  • Use separate credentials per environment or service where possible, so access can be revoked and audited independently.
  • If you suspect a credential has leaked, contact Fyscaltech immediately to have it rotated — see Support.
Note. 

The exact credential format (e.g. bearer token vs. signed request) for the Customer Ingestion and Screening APIs is confirmed with Fyscaltech during onboarding — this page will be updated with the specific mechanism once finalized.

Module 07

Integration Workflows

There are two distinct request patterns depending on which APIs you use — a synchronous flow where the screening result comes back in the same response, and an asynchronous flow where it's delivered later to your webhook.

Flow A — synchronous (Screening API called directly)

Customer Record
(already ingested)
Screening API request
(full name)
Screening result returned
in the response

Flow B — asynchronous (Customer Ingestion API triggers screening)

Customer Record
Customer Ingestion API
(create/update)
Screening triggered
automatically
Result delivered
to your webhook

Bulk CSV — batch (sits outside both flows)

Bulk CSV uploads are for getting Customer, Customer Account, and Customer Transaction data into the platform in volume, rather than triggering an immediate screening result back to your system. Screening or monitoring against that data happens on the platform's own schedule (see Name Screening's Batch and Delta Screening, and Transaction Monitoring's execution intervals) rather than as a direct response to the upload.

Choosing sync vs. async

PatternUse it when
Synchronous (Flow A)You need the result immediately in your own onboarding flow — e.g. blocking account opening until screening completes
Asynchronous (Flow B)You're already pushing customer records via the Ingestion API and prefer not to poll — results land on your webhook as they complete
Batch (Bulk CSV)You're loading or refreshing large populations, and don't need a per-record result back in real time
Note. 

Sequence diagrams showing exact request/response timing for both APIs will be added here once the Customer Ingestion and Screening API specifications are finalized.

Module 08

Webhooks & Events

A webhook is only relevant if you're using the Customer Ingestion API to trigger screening as part of ingesting a customer record. If you call the Screening API directly instead, you get the result back in that same response and don't need a webhook at all.

How it works

  • Unlike the other integration methods, the webhook endpoint itself is hosted and owned by you, not Fyscaltech — you stand up an endpoint that can receive an incoming request
  • Fyscaltech provides the request format your endpoint will receive, along with security guidelines for verifying that a delivery genuinely came from the platform
  • Once configured, screening results triggered via the Customer Ingestion API are delivered to your endpoint as they complete, instead of you needing to poll for them

Event types

The event names below describe the kinds of platform activity a webhook integration is expected to cover. Exact payload structure for each is confirmed with the Fyscaltech integration team.

EventFires when
screening.completedA screening request (via API or triggered by ingestion) finishes with a result
screening.failedA screening request could not be completed
customer.createdA new Customer Record is created via the Customer Ingestion API
customer.updatedAn existing Customer Record is updated
transaction.ingestedA Customer Transaction Record is successfully ingested
alert.createdName Screening or Transaction Monitoring generates a new alert
case.createdAn alert is escalated into a Case Manager investigation

Setting one up

  1. Stand up an endpoint on your side that can receive an HTTPS request.
  2. Contact the Fyscaltech integration team (see Support) with your endpoint URL and to receive the request format and security/signature verification guidelines.
  3. Implement verification on your endpoint per the guidelines provided, so you can trust that an incoming request genuinely came from the platform rather than a third party.
Note. 

This webhook is only needed for the ingest-then-screen flow through the Customer Ingestion API. If you only use bulk CSV ingestion, or call the Screening API directly for each check, you don't need to set up a webhook at all.

Module 09

Errors, Limits & Best Practices

Both the Customer Ingestion API and Screening API return standard HTTP status codes to indicate success or failure. The exact error payload structure, business error codes, and any rate limits are confirmed with the Fyscaltech integration team as part of onboarding.

HTTP status codes you can generally expect

StatusMeaning
200 / 201Request succeeded
400Request was malformed or failed validation
401 / 403Authentication or authorization failure
404Referenced resource not found
429Too many requests
500Unexpected server error — generally safe to retry

Business error codes

Business-level error codes (e.g. the AML001AML005 range and beyond) sit alongside the HTTP status and identify the specific validation or business rule that failed. The confirmed code list and meanings are published here once the Customer Ingestion and Screening API specifications are finalized.

Bulk CSV uploads

For bulk ingestion, check the FT AML console under Data Ingestion to confirm a file was picked up and processed successfully, rather than relying on the S3 upload itself as confirmation — a successful upload to S3 means the file arrived, not that every row in it passed validation.

Best practices

General integration practices that apply across all three methods, worth building in from day one rather than retrofitting later:

  • Idempotency — design record creation/update calls so retrying a request with the same input doesn't create a duplicate.
  • Retry strategy & exponential backoff — retry on 429 and 5xx responses with increasing delay between attempts, rather than retrying immediately in a tight loop.
  • Timeout handling — set a sensible client-side timeout, and treat a timeout as "unknown outcome" rather than "failed" — check status before retrying.
  • Webhook retries — expect Fyscaltech to retry webhook delivery on failure; make your endpoint idempotent so a redelivered event doesn't double-process.
  • Correlation IDs — pass through or log the X-Request-Id (or equivalent) from responses so a specific request can be traced when raising a support issue.
  • Rate limiting — respect published limits once confirmed; back off rather than queuing requests faster than the platform can process them.
  • Pagination — for any endpoint returning lists, page through results rather than assuming a single response contains everything.
  • Versioning — pin to a specific API version once published, and review the changelog before upgrading.
  • Logging — log request/response metadata (not full PII payloads) to support troubleshooting without creating a compliance data-handling risk of its own.
  • Security — see Authentication for credential handling; treat webhook payloads as untrusted until signature-verified.
Note. 

Specific error codes, rate limit thresholds, and retry guidance for the Customer Ingestion and Screening APIs will be added here once confirmed with the Fyscaltech integration team.

Module 10

Testing & Sandbox

Whether a separate sandbox/test environment is available for the Customer Ingestion and Screening APIs, and what test data it ships with, is confirmed with the Fyscaltech integration team as part of onboarding. For bulk CSV ingestion, the same S3 location and console feedback (Data Ingestion job status) apply regardless of whether you're testing or in production, so start with a small file to confirm your CSV format is accepted before uploading your full population.

Go-live checklist

  • CSV format confirmed against a small test file before uploading your full customer, account, or transaction population
  • Customer Ingestion API and/or Screening API integration tested end-to-end, including error handling
  • If using the ingest-then-screen flow, webhook endpoint built and signature verification implemented per the guidelines provided by Fyscaltech
  • A point of contact established with the Fyscaltech integration team for onboarding support and future changes
  • Best practices from Module 09 (idempotency, retries, logging) reviewed against your implementation
Module 11

Troubleshooting & FAQ

Common issues

IssueLikely cause & resolution
Bulk CSV file stuck in ProcessingCheck the source file for encoding or column issues; confirm in the console under Data Ingestion, and escalate to Fyscaltech if it doesn't clear
Screening API returns no matches for a known nameConfirm the name is being submitted exactly as registered; remember the API currently matches on full name only
Webhook not receiving deliveriesConfirm your endpoint URL was registered with Fyscaltech, that it's reachable over HTTPS, and that signature verification isn't silently rejecting valid deliveries
Unexpected 401/403 responsesCheck credential expiry and that you're using the correct environment's (sandbox vs. production) credentials
Customer Ingestion API call succeeds but no screening result appearsConfirm screening-on-ingest was requested as part of the call, and check the Alert Manager for the result before assuming failure

Frequently asked questions

Can we use more than one integration method at once?

Yes — most institutions use Bulk CSV for the initial customer population, then the Customer Ingestion API and/or Screening API for ongoing, real-time updates.

Do we need a webhook if we only use the Screening API?

No. Calling the Screening API directly returns the result in the same response — a webhook is only needed for the ingest-then-screen flow via the Customer Ingestion API.

Is there a sandbox we can test against before going live?

Availability and setup for a sandbox environment are confirmed with the Fyscaltech integration team as part of onboarding — see Testing & Sandbox.

Can the Screening API match on more than full name?

Not currently — it supports full name matching only. Additional matching fields (date of birth, address, citizenship) are available through Manual Screening in the console today.

Who do we contact if we suspect a credential has leaked?

Contact the Fyscaltech integration team immediately (see Support) to have it rotated — don't wait for a scheduled review.

Where do we find upcoming API changes before they land?

Keep a point of contact with the Fyscaltech integration team, and check Resources & Changelog once a public changelog is published.

Module 12

Resources & Changelog

Downloadable and reference materials to speed up integration work. Items marked coming soon are on the roadmap and will appear here once published.

Postman Collection

A ready-to-import collection covering the Customer Ingestion and Screening APIs.

Coming soon

OpenAPI Specification

Machine-readable spec for generating clients or importing into your own API tooling.

Coming soon

CSV Templates

Starter templates for Customer, Customer Account, and Customer Transaction bulk uploads.

Coming soon

Release Notes

A running log of platform and API changes, once the API reference is finalized.

Coming soon

SDKs

Official client libraries for common languages, planned for a future release.

Future

Fyscaltech Integration Team

The most reliable resource today — see Support for contact details.

Changelog & versioning

As the Customer Ingestion and Screening APIs move from onboarding-provided specifications toward a stable published reference, changes will be communicated directly by the Fyscaltech integration team. If you're integrated against either API, keeping a point of contact with the team (see Support) is the most reliable way to hear about upcoming changes before they land.

Note. 

A formal versioning policy and public changelog will be published here once the API reference itself is finalized.

Module 13

Support

  • In-app: Homepage > Help & Support
  • Email: hello@fyscaltech.com
  • Phone: +65 8080 5424
  • Headquarters: Singapore · 68 Circular Road
  • Account-level issues (API key provisioning, permissions) — contact your organization's Admin

What to include when you contact us

To help us resolve integration issues quickly, please include: the environment (sandbox/production), the endpoint and HTTP method, the X-Request-Id from the response headers if available, and a timestamp of when the issue occurred.

Thank you for building on FT AML.