{
  "schemaVersion": "api-migration-guard.finances-manifest.v1",
  "module": "finances-v2024-06-19-listTransactions",
  "createdFor": "production-cutover-validation",
  "postedAfter": "2026-01-01T00:00:00Z",
  "postedBefore": "2026-01-31T23:59:59Z",
  "windowPolicy": {
    "maxDays": 180,
    "timezone": "UTC",
    "preserveOriginalArgumentsOnNextToken": true
  },
  "pages": [
    {
      "pageNumber": 1,
      "request": {
        "postedAfter": "2026-01-01T00:00:00Z",
        "postedBefore": "2026-01-31T23:59:59Z"
      },
      "responseSummary": {
        "transactionCount": 2,
        "nextToken": "PAGE-2-SAMPLE"
      },
      "transactionIds": [
        "TXN-ORDER-1001",
        "TXN-REFUND-1001"
      ]
    },
    {
      "pageNumber": 2,
      "request": {
        "postedAfter": "2026-01-01T00:00:00Z",
        "postedBefore": "2026-01-31T23:59:59Z",
        "nextToken": "PAGE-2-SAMPLE"
      },
      "responseSummary": {
        "transactionCount": 0,
        "nextToken": "PAGE-3-SAMPLE",
        "note": "Empty page must not stop pagination while nextToken exists."
      },
      "transactionIds": []
    },
    {
      "pageNumber": 3,
      "request": {
        "postedAfter": "2026-01-01T00:00:00Z",
        "postedBefore": "2026-01-31T23:59:59Z",
        "nextToken": "PAGE-3-SAMPLE"
      },
      "responseSummary": {
        "transactionCount": 1,
        "nextToken": null
      },
      "transactionIds": [
        "TXN-TRANSFER-1001"
      ]
    }
  ],
  "expectedTotals": [
    {
      "currency": "USD",
      "amountType": "ProductCharges",
      "amount": "120.00"
    },
    {
      "currency": "USD",
      "amountType": "AmazonFees",
      "amount": "-18.45"
    },
    {
      "currency": "USD",
      "amountType": "Refunds",
      "amount": "-35.00"
    },
    {
      "currency": "USD",
      "amountType": "Disbursement",
      "amount": "-66.55"
    }
  ],
  "duplicateTransactionPolicy": "fail-on-duplicate-transaction-id-with-different-breakdown",
  "validationSteps": [
    "Split request windows before calling listTransactions.",
    "Preserve postedAfter and postedBefore on token pages.",
    "Continue when an empty page still has nextToken.",
    "Reconcile recursive breakdown totals with decimal arithmetic."
  ]
}
