Skip to main content

Overview

Get RTA files in. Get clean investment records out.
RTA Sync is reverse-feed infrastructure for CAMS and KFintech, India’s leading Registrar and Transfer Agents (RTAs). It receives RTA files, cleans provider- specific data, and delivers consistent records to MFD and wealth platforms. The product contract is intentionally simple:
The engine detects the source format, cleans the rows, applies provider-specific transaction rules, and returns a consistent JSON response for your portfolio or wealth platform. In the back-office market, this is commonly called a reverse feed: CAMS and KFintech send updated holdings and transaction data to the platform that serves the distributor. RTA Sync focuses on the quality of that data transfer and the records produced from it.

How the product works

RTA reports are commonly delivered to the distributor’s registered email inbox. RTA Sync can receive those files through either of these delivery paths: The delivery connectors get the file to the engine. The RTA Sync Engine does the data work:
  1. Detect the RTA and file format.
  2. Map provider fields into a common vocabulary.
  3. Normalize dates, numbers, signs, and transaction semantics.
  4. Handle provider-specific reversal, switch, and transfer markers.
  5. Return clean records, warnings, and a batch summary.
Use direct file upload for the simplest integration. Inbox and email forwarding connectors deliver files to the same engine.

Is this an RTA file reader?

Yes, but the output is more useful than a file listing. The engine reads the source file and returns canonical investment records that your application can use without maintaining separate CAMS and KFintech field mappings.

Who it is for

RTA Sync is designed for:
  • wealth and portfolio platforms;
  • mutual-fund distributors and RIAs;
  • fintech applications onboarding investor portfolios;
  • engineering teams maintaining CAMS/KFintech feed pipelines.

Two operating models

Platforms serving multiple distributors

Use RTA Sync as a data layer behind your MFD or wealth platform:
  • route each file to the right platform tenant, distributor, or branch;
  • remove separate CAMS/KFintech parsing logic from your product;
  • expose consistent transactions, AUM, SIP, commission, and exception data;
  • keep the distributor-facing product focused on onboarding, portfolio views, research, and client servicing.

Distributor and sub-distributor networks

Use RTA Sync to keep each advisor’s book current:
  • attribute records to the correct distributor, sub-distributor, broker code, or EUIN when the source provides it;
  • update client, folio, scheme, AUM, SIP, transaction, and commission views;
  • surface rejected, pending, missing, and unmatched records for operations;
  • give every advisor clean portfolio data without asking them to manually clean RTA files.
Each RTA report family maps to a typed data set. Transaction records are shown in this guide; the same file-level envelope carries investor, folio, AUM, SIP, NAV, exception, brokerage, mandate, and settlement-exception objects. Bulk SOA and PDF statements use the CAS document APIs.

What RTA Sync powers

RTA Sync is a data layer for the back-office functions that depend on RTA data:
  • portfolio tracking and current holdings;
  • client reporting and historical transactions;
  • commission and brokerage reconciliation;
  • CRM updates for investors, folios, SIPs, and KYC status;
  • operational queues for rejected, pending, missing, or unmatched records.
RTA Sync does not execute buy, sell, switch, SIP, STP, or SWP orders. It keeps the data behind those workflows accurate.

Why reverse-feed quality matters

Small source errors become visible product failures. A missed dividend reinvestment, incorrectly paired switch, stale AUM snapshot, or unresolved brokerage payout can make a distributor distrust the entire back office. RTA Sync preserves source fields, emits warnings, and separates transactions, snapshots, systematic instructions, brokerage payouts, and exceptions instead of forcing every report into one row shape.

RTA report families

RTA Sync supports more than transaction files. Each report family maps to the data objects and workflows it contains: The report code identifies the provider file. It does not define the data object by itself. A report such as MFSD221 can produce both investor-master and transaction data sets. CAMS WBR2 reports map to transactions, while WBR77 reports map to brokerage payouts.

Normalize one or more files

Request

POST /v1/rta-sync/normalize The request uses multipart/form-data: Supported file formats:
  • CSV
  • XLS
  • XLSX
  • DBF

cURL

cURL

Python

Python

Node.js

Node.js

Response

The response is a batch envelope. Even a one-file request returns a files array so the same contract works for multiple attachments.

Canonical record fields

Each file result identifies what was received and how it was mapped: Every canonical record has shared identity and provenance fields: Transaction records add these fields: Fields that are not available in the source are returned as null. The engine does not infer transaction identity from a display name or silently convert a brokerage amount into an investment transaction amount.

Financial value semantics

  • NAV, units, amounts, AUM, commissions, and TDS are decimal strings.
  • Canonical decimal values are non-negative. action and effect represent unit direction; cash_effect represents money direction instead of relying on a negative sign.
  • currency is explicit on financial records and is INR for the supported mutual-fund reverse feeds.
  • transaction_date is the business transaction date. NAV, processing, payout, and snapshot dates use separate fields when present.
  • Rounding is not applied during normalization; source precision is preserved.
  • Pending, failed, and unknown transactions have no unit effect. Pending and failed transactions have no cash effect.

Identity and provenance

  • schema_version versions the response contract.
  • key_version versions the deterministic record-key algorithm.
  • batch_key is lowercase SHA-256 over the UTF-8 string schema_version + "\n" + key_version + "\n" + pairs, where pairs is the newline-joined, lexicographically sorted list of source_sha256:mapping_version values. File order does not change it; duplicate pairs are preserved.
  • record_key remains stable when the same source identity is reprocessed.
  • identity_quality tells you whether the key is strong, weak, or ambiguous.
  • provenance.source_rows lists every row used to create a record, including records aggregated from multiple switch or transfer rows.

Data object categories

RTA Sync uses typed data objects so report-specific fields do not get forced into a transaction row:
  • investor and folio masters;
  • AUM and holdings snapshots;
  • SIP, STP, and SWP instructions;
  • NAV and dividend/bonus reference data;
  • rejection, KYC, and other operational exceptions;
  • brokerage payouts, mandates, and settlement exceptions.
PDF statements and bulk SOAs use the CAS document APIs rather than the structured reverse-feed normalization contract. Do not map those rows into the transaction object.

Batch behavior

Send one file when you have one report. Send multiple files when an email or reporting period gives you related attachments:
  • every input file gets its own result, source schema, typed data sets, summary, and warnings;
  • file results preserve upload order and include file_index, so duplicate filenames remain distinguishable;
  • reference is echoed for your correlation and is not used as server-side state;
  • RTA Sync does not merge files or compare them with earlier batches;
  • use the reconciliation operation for cross-file comparison and change detection.
  • A file-level failure fails the entire request; row-level warnings do not.
For a file-level failure, the API returns 400 with an errors[] entry for the affected file and no successful file results.

Provider-specific cleanup

The canonical output hides source-specific rules while preserving the original values:
  • KFintech transfer and switch flags take precedence over the purchase or redemption purpose field.
  • Reversal rows retain the business action, set is_reversal, expose the final ledger effect, and link to the original record through relations when the parent can be resolved.
  • An unresolved reversal remains in the output with reversal_resolution: "unresolved" and an UNMATCHED_REVERSAL warning.
  • CAMS and KFintech switch and transfer rows may require different aggregation rules before output.
  • Unknown source columns are available through provenance.source_fields when requested.

Warnings and skipped rows

The API returns warnings instead of silently discarding information whenever it can continue safely. Example warning:
Rows are rejected when they cannot be normalized safely. Every rejected source row appears once in the file-level rejected_rows; its length equals summary.rejected_rows. Review rejected rows and warnings before writing records into a production ledger.

Reconciliation

RTA Sync reconciliation compares a current normalized batch with a previous batch supplied by your platform and classifies new, unchanged, changed, duplicate, reversed, removed, and unmatched records. POST /v1/rta-sync/reconcile
The response returns per-record classifications and field-level changes:
Reconciliation is stateless: both comparison sides are supplied in the request. The API does not retain a prior batch or decide which platform record should win. Use event_stream scope for observed transaction/activity files; absence from a later event feed is not a removal. Use snapshot with complete: true only when both sides contain the full declared scope. The removed classification is emitted only for that complete-snapshot case. Mapping, key, and schema versions must match unless mapping_policy is allow_compatible.

Errors

Use the X-Request-ID response header when contacting support.

Common feed issues

RTA files can fail for different reasons. The API reports file-level and row-level warnings so you can distinguish format problems from data problems.
  • Header, delimiter, encoding, or spreadsheet layout differs.
  • The same attachment is delivered more than once.
  • A report contains multiple attachments or mixed report types.
  • A reversal has no parent reference or uses a changed transaction number.
  • Switch and transfer rows are split across multiple source rows.
  • A scheme code, folio, PAN, or transaction ID is missing or ambiguous.
  • AUM or closing assets are mistaken for transaction amounts.
  • SIP, STP, rejection, KYC, or brokerage rows are not transaction records.
  • Broker, sub-broker, EUIN, and investor attribution are mixed together.
Use the warning code and fields to decide whether to accept the record, retry the file, or send it to your review workflow.

Scope

The file API processes one or more RTA feed files per request. It returns clean records and typed data sets without calculating positions or brokerage payouts inside the normalization step. For inbox delivery, see Email Inbox Import and Inbound Email API. Those connectors deliver files; RTA Sync cleans them.