Skip to main content

Transaction Reconciliation Process

Scope

This document defines the JSON file format, Cloud Storage upload path, and reconciliation rules.

Summary

When a JSON file is uploaded to the reconciliation bucket, an automated process compares reported transactions against database records.

File location

Bucket (safe example)

gs://example-conciliation-bucket

Path structure

principals/<principal-id>/conciliation/<filename>.json
ParameterDescription
<principal-id>Principal identifier (without exposing real emails or real service accounts).
<filename>Descriptive file name, ideally date-based.

Valid path example (anonymized)

gs://example-conciliation-bucket/principals/demo-principal-001/conciliation/conciliacion-2026-03-11.json

JSON file format

Structure

{
"fechatransaccion": "YYYY-MM-DD",
"items": [
{
"id": "string",
"monto": 0,
"referencia": "string",
"fecha": "ISO 8601 timestamp",
"sku": "string"
}
]
}

Field definitions

FieldTypeRequiredRule
fechatransaccionstringYesYYYY-MM-DD format in Mexico City time.
itemsarrayYesMinimum of one item.
items[].idstringYesUnique transaction identifier.
items[].montonumberYesAmount in MXN, up to 2 decimals.
items[].referenciastringYesTransaction reference (phone or folio).
items[].fechastringYesISO 8601 timestamp in UTC.
items[].skustringYesProduct or service SKU.
Important timezone rule

items[].fecha is provided in UTC, but reconciliation is evaluated against fechatransaccion in Mexico City time.

Full example

File: transacciones-2026-02-13.json

{
"fechatransaccion": "2026-02-13",
"items": [
{
"id": "TX-55146",
"monto": 30.0,
"referencia": "6640000001",
"fecha": "2026-02-14T00:25:51.98872Z",
"sku": "A030"
},
{
"id": "TX-55147",
"monto": 100.0,
"referencia": "6640000002",
"fecha": "2026-02-14T00:29:44.530341Z",
"sku": "A100"
},
{
"id": "TX-55148",
"monto": 50.0,
"referencia": "6640000003",
"fecha": "2026-02-13T20:15:30.123456Z",
"sku": "A050"
}
]
}

Timezone: UTC vs Mexico

For fechatransaccion: "2026-02-13" (Mexico), the queried UTC range is:

  • Start: 2026-02-13 06:00:00 UTC
  • End: 2026-02-14 05:59:59 UTC

Included transactions (example):

  • 2026-02-13T08:00:00Z
  • 2026-02-14T00:25:51Z
  • 2026-02-14T05:59:00Z

Not included:

  • 2026-02-14T06:00:00Z (already belongs to the next day in Mexico)

File upload

Choose the language or tool you prefer:

gsutil cp transacciones-2026-03-11.json \
gs://example-conciliation-bucket/principals/demo-principal-001/conciliation/

gsutil ls gs://example-conciliation-bucket/principals/demo-principal-001/conciliation/

Reconciliation results

Successful reconciliation

Total in file: 10
Total in database: 10
Matches: 10
Missing in database: 0
Missing in file: 0
Amount discrepancies: 0

Detected differences

Transactions missing in database:

Total in file: 12
Total in database: 10
Matches: 10
Missing in database: 2
Missing in file: 0
Amount discrepancies: 0

Transactions missing in file:

Total in file: 8
Total in database: 10
Matches: 8
Missing in database: 0
Missing in file: 2
Amount discrepancies: 0

Amount discrepancies:

Total in file: 10
Total in database: 10
Matches: 8
Missing in database: 0
Missing in file: 0
Amount discrepancies: 2

References