Skip to main content

Transaction records

Whether you need to reconcile funds line by line, reconstruct the full timeline of one purchase or satisfy a regulator’s expectation that every movement of funds is traceable, the transaction record is the single source you need to rely on. As a licensed issuer, DCS persists every settled movement of funds as a tamper-proof record and delivers the complete set to the partner in a daily reconciliation file. A transaction record captures only real debits and credits. It never carries the intermediate states of the authorization stage, such as holds and releases. It is the authoritative record of where the money finally went, and together with the authorization and the Outstanding it forms the complete fund lifecycle.

Where it sits in the fund lifecycle

The authorization decides how much to hold, settlement decides how much is finally taken, and the transaction record is what settlement leaves behind. The three are linked by IDs:
Where transactions sit in the fund lifecycleWhere transactions sit in the fund lifecycle
  • A transaction record links to its Outstanding through outsId and to one or more authorizations through authIds (several authorizations are comma-separated, for example 1111,2222).
  • With multiple authorizations, incremental authorizations, partial captures and similar combinations, authorizations and transaction records do not map one to one. All 13 combinations (normal settlement, incremental, reversal, excess and under capture, forced capture, cash withdrawal and the rest) are in Authorization and settlement: every scenario.

Transaction direction (direction)

The direction field separates two core cases:

Transaction category (category)

The category field classifies each record for business purposes and is the primary dimension the partner uses for analysis and cost accounting.
How do you tell withdrawal principal from fee? In a cash withdrawal, category=CASH is the principal and category=CASH_FEES is the fee, and each lands as its own record. The withdrawal fee goes through forced posting on its own; see Authorization and settlement, scenario 13. On cash withdrawal values: the daily transaction file always uses the full category names (RETAIL, CASH, CASH_FEES, PAYMENT and so on). Codes such as C, CF and R are internal enumerations and never appear in the daily transaction file. The R / C / Q / P values of transactionType on the authorization side are a different dimension again, so do not mix them.

Multiple capture indicator (multiClearInd)

One authorization may be settled several times, for instance when a merchant ships in batches or a hotel bills each line item at check-out. multiClearInd tells you where the current record sits in that series:
With multiple captures, treat the arrival of the F record as the signal that the authorization has settled in full. Before F arrives, further P records may still turn up under the same authIds.

How to get transaction records

Under Partner-Managed there is no real-time endpoint for querying an individual transaction. Transaction data is delivered through the daily full reconciliation file: each day DCS generates a complete file of that day’s transaction records for every partner enterprise. Endpoint (fetch the download link)
Response: a string containing the file download link (a temporary S3 link with a short lifetime, so download it promptly).
Who does what
  • DCS: generates the full transaction file every day and issues a temporary download link on request.
  • Partner: call this endpoint for the link, download the file, persist it, and check that the balance movements match your own business records.
About the files and links: by default the system generates the previous day’s authorization and transaction files on T+1, and they can be downloaded once the job status is DONE; the exact daily run time is configured on the job platform. A download link is valid for 120 seconds; once it expires, call the endpoint again for a fresh 120-second link. The underlying file is not deleted when a link expires.
For how download links are obtained in general and how the daily reconciliation cycle works, see Transaction report.

Fields in the transaction file

One record per line, fields separated by >, in this order: Sample
The two lines above happen to illustrate a cash withdrawal: the first, CASH, is the withdrawal principal and the second, CASH_FEES, is the withdrawal fee. Both records share the same card number and the same merchant. Nothing follows the trailing > on either line, because non-refund records carry no originalTransactionId.
To make mapping into your own database easier, the first >-delimited line above is expanded below into an equivalent structured record, with field names matching the table above one for one:
transaction records are delivered only as the >-delimited text file shown above. This JSON is a field-by-field illustration and does not imply that an endpoint returns JSON. In this sample multiClearInd is literally null; outside cash withdrawals it carries O, P or F.

Next steps