{
  "metadata": {
    "harnessName": "hmrc_integration_test",
    "executedAtUtc": "2026-04-27T09:49:53.158599Z",
    "environment": "harness-seeded",
    "workerBaseUrl": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev",
    "workerVersion": "",
    "appVersion": "",
    "gitCommit": "",
    "attributes": {
      "taxYear": "2025-26",
      "periodStart": "2025-04-06",
      "periodEnd": "2025-07-05",
      "periodKey": "Q1",
      "includeSubmissions": "true",
      "dataSource": "live",
      "nino": "WL254177A",
      "businessId": "X4IS27198436836",
      "businessName": "Pilates Studio",
      "quarterlyPeriodType": "standard",
      "firstAccountingPeriodStartDate": "2025-04-06",
      "secondaryBusinessId1": "X1IS73403316474",
      "secondaryBusinessName1": "Harbour Music Lessons",
      "secondaryBusinessQuarterlyPeriodType1": "standard",
      "secondaryBusinessFirstAccountingPeriodStartDate1": "2025-04-06",
      "authSource": "relay-token"
    }
  },
  "summary": {
    "passed": 75,
    "failed": 6,
    "skipped": 7,
    "total": 88
  },
  "scenarios": [
    {
      "name": "Authorisation API GET /hmrc/authorize returns an HMRC consent URL for user-restricted access",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:53.168500Z",
      "durationMs": 47,
      "steps": [
        {
          "message": "Authorisation endpoint returned an HMRC consent URL for user-restricted access.",
          "passed": true
        },
        {
          "message": "Auth source recorded as relay-token.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "stage": "Create authorize URL",
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/authorize?appCallbackUri=playpay%3A%2F%2Fhmrc-auth-complete",
          "path": "/hmrc/authorize",
          "queryParameters": {
            "appCallbackUri": "playpay://hmrc-auth-complete"
          },
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/oauth/authorize",
              "path": "/oauth/authorize",
              "headers": {
                "accept": "application/json"
              },
              "hmrcApi": {
                "apiName": "OAuth",
                "operation": "GetAuthorizeUrl",
                "method": "GET",
                "acceptHeader": null,
                "version": null,
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/authorisation",
                "pathTemplate": "/oauth/authorize"
              }
            },
            "hmrc-response": {
              "status": 200,
              "payload": {
                "url": "https://test-api.service.hmrc.gov.uk/oauth/authorize?response_type=code&client_id=HfPP0moEmhaKkJMRdZJArNwHprnB&redirect_uri=https%3A%2F%2Fplaypay-mtd-auth-worker-dev.playpay.workers.dev%2Fhmrc%2Fcallback&scope=read%3Aself-assessment+write%3Aself-assessment&state=b_r7xt1DSIJ...gc",
                "state": "b_r7xt1DSIJ...gc",
                "appCallbackUri": "playpay://hmrc-auth-complete"
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "url": "https://test-api.service.hmrc.gov.uk/oauth/authorize?response_type=code&client_id=HfPP0moEmhaKkJMRdZJArNwHprnB&redirect_uri=https%3A%2F%2Fplaypay-mtd-auth-worker-dev.playpay.workers.dev%2Fhmrc%2Fcallback&scope=read%3Aself-assessment+write%3Aself-assessment&state=b_r7xt1DSIJ...gc",
              "state": "b_r7xt1DSIJ...gc",
              "appCallbackUri": "playpay://hmrc-auth-complete"
            }
          ]
        },
        "details": {
          "authSource": "relay-token"
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 21
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity returns the configured business",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:53.221534Z",
      "durationMs": 321,
      "steps": [
        {
          "message": "Harness-seeded identity read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "2 businesses found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=STATEFUL",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb78ce3ab13e",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "72688586-aac5-48c8-9425-6bb48b2ba733",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "X1IS73403316474",
                    "tradingName": "Harbour Music Lessons"
                  },
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "X4IS27198436836",
                    "tradingName": "Pilates Studio"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "X1IS73403316474",
                  "businessName": "Harbour Music Lessons"
                },
                {
                  "businessId": "X4IS27198436836",
                  "businessName": "Pilates Studio"
                }
              ]
            }
          ]
        },
        "details": {
          "businessCount": 2,
          "matchedConfiguredBusiness": true,
          "identityReadBackAttempts": 1,
          "identityReadBackUsedStatefulScenario": true,
          "seededBusinessIdentityReadBackValidated": true,
          "seededBusinessIdentityLagAccepted": false
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 182
        }
      }
    },
    {
      "name": "Fraud Prevention Headers API GET /hmrc/fraud-prevention-headers/validate validates the smoke fraud header profile",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:49:53.547438Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "HMRC sandbox is currently returning upstream 500 responses from the fraud-prevention validator endpoint, so this QA-only live check is skipped.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC sandbox is currently returning upstream 500 responses from the fraud-prevention validator endpoint, so this QA-only live check is skipped."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations returns open quarterly obligations",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:49:53.550714Z",
      "durationMs": 1,
      "steps": [
        {
          "message": "HMRC Obligations API is non-stateful in the sandbox and does not reliably return the seeded open quarterly obligations. 4 open quarter(s) loaded directly from the harness seed response instead.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC Obligations API is non-stateful in the sandbox and does not reliably return the seeded open quarterly obligations. 4 open quarter(s) loaded directly from the harness seed response instead."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations returns fulfilled quarterly obligations across the smoke window",
      "subtitle": "HMRC Scenario: DYNAMIC. The response mirrors the from/to window and status supplied in the request so the fulfilled obligation matches the requested smoke window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:53.552503Z",
      "durationMs": 302,
      "steps": [
        {
          "message": "Fulfilled obligations call returned 0 results.",
          "passed": true
        },
        {
          "message": "Fulfilled obligations request included the expected date window and used the DYNAMIC scenario.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&from=2025-01-05&to=2025-04-05&status=fulfilled&typeOfBusiness=self-employment&gov-test-scenario=DYNAMIC",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "X4IS27198436836",
            "from": "2025-01-05",
            "to": "2025-04-05",
            "status": "fulfilled",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "DYNAMIC"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb7abfa9ba0d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?fromDate=2025-01-05&toDate=2025-04-05&status=fulfilled&typeOfBusiness=self-employment&businessId=X4IS27198436836",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "fromDate": "2025-01-05",
                "toDate": "2025-04-05",
                "status": "fulfilled",
                "typeOfBusiness": "self-employment",
                "businessId": "X4IS27198436836"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "DYNAMIC"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?fromDate=2025-01-05&toDate=2025-04-05&status=fulfilled&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "e885ed52-e16b-4a72-be5f-9561c5101e72",
              "payload": {
                "code": "NO_OBLIGATIONS_FOUND",
                "message": "No obligations found using this filter"
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": []
            }
          ]
        },
        "details": {
          "scenario": "DYNAMIC",
          "obligationCount": 0,
          "window": {
            "from": "2025-01-05T00:00:00.000Z",
            "to": "2025-04-05T00:00:00.000Z"
          },
          "windowSource": "derived-from-open-obligation",
          "periodKey": "Q1"
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 178
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations/final-declaration returns open final declaration obligations",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:53.858041Z",
      "durationMs": 339,
      "steps": [
        {
          "message": "Final declaration obligations call returned 1 results.",
          "passed": true
        },
        {
          "message": "Final declaration obligations stayed scenario-free.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations/final-declaration?nino=WL254177A&taxYear=2025-26&status=open",
          "path": "/hmrc/obligations/final-declaration",
          "queryParameters": {
            "nino": "WL254177A",
            "taxYear": "2025-26",
            "status": "open"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb7cbd88f581",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/crystallisation?taxYear=2025-26&status=open",
              "path": "/obligations/details/WL254177A/crystallisation",
              "queryParameters": {
                "taxYear": "2025-26",
                "status": "open"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetFinalDeclarationObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/crystallisation",
                "path": "/obligations/details/WL254177A/crystallisation?taxYear=2025-26&status=open"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "c848db90-8dc4-4bf9-a12c-ea1012b4ab06",
              "payload": {
                "obligations": [
                  {
                    "periodStartDate": "2018-04-06",
                    "periodEndDate": "2019-04-05",
                    "dueDate": "2020-01-31",
                    "status": "open"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": [
                {
                  "periodStartDate": "2018-04-06",
                  "periodEndDate": "2019-04-05",
                  "dueDate": "2020-01-31",
                  "status": "open"
                }
              ]
            }
          ]
        },
        "details": {
          "obligationCount": 1,
          "openCount": 1
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 204
        }
      }
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} returns NOT_FOUND as a controlled HMRC error",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:54.201423Z",
      "durationMs": 483,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: NOT_FOUND.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched NOT_FOUND.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb7edf87b3e4",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "254",
            "content-type": "application/json",
            "gov-test-scenario": "NOT_FOUND",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2025-07-05"
            },
            "periodIncome": {
              "turnover": 1840.25,
              "other": 0,
              "taxTakenOffTradingIncome": 0
            },
            "periodExpenses": {
              "adminCosts": 145.8
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 9.5
            }
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NOT_FOUND"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-07-05"
                },
                "periodIncome": {
                  "turnover": 1840.25,
                  "other": 0,
                  "taxTakenOffTradingIncome": 0
                },
                "periodExpenses": {
                  "adminCosts": 145.8
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 9.5
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "c440a82f-ee8a-47ec-b435-504350dcbc1e",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 404,
          "payload": [
            {
              "error": "HMRC cumulative submission rejected.",
              "hmrcStatus": 404,
              "correlationId": "c440a82f-ee8a-47ec-b435-504350dcbc1e",
              "body": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "NOT_FOUND"
          ],
          "matchedCodeFragment": "NOT_FOUND",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              },
              "request": {
                "method": "PUT",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                "headers": {
                  "accept": "application/json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2ceb7edf87b3e4",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "254",
                  "content-type": "application/json",
                  "gov-test-scenario": "NOT_FOUND",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                },
                "body": {
                  "periodDates": {
                    "periodStartDate": "2025-04-06",
                    "periodEndDate": "2025-07-05"
                  },
                  "periodIncome": {
                    "turnover": 1840.25,
                    "other": 0,
                    "taxTakenOffTradingIncome": 0
                  },
                  "periodExpenses": {
                    "adminCosts": 145.8
                  },
                  "periodDisallowableExpenses": {
                    "adminCostsDisallowable": 9.5
                  }
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "PUT",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.5.0+json",
                      "content-type": "application/json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "NOT_FOUND"
                    },
                    "body": {
                      "periodDates": {
                        "periodStartDate": "2025-04-06",
                        "periodEndDate": "2025-07-05"
                      },
                      "periodIncome": {
                        "turnover": 1840.25,
                        "other": 0,
                        "taxTakenOffTradingIncome": 0
                      },
                      "periodExpenses": {
                        "adminCosts": 145.8
                      },
                      "periodDisallowableExpenses": {
                        "adminCostsDisallowable": 9.5
                      }
                    },
                    "hmrcApi": {
                      "apiName": "SelfEmployment",
                      "operation": "PutCumulativePeriodSummary",
                      "method": "PUT",
                      "acceptHeader": "application/vnd.hmrc.5.0+json",
                      "version": "5.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                      "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                      "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "SelfEmployment",
                    "operation": "PutCumulativePeriodSummary",
                    "method": "PUT",
                    "acceptHeader": "application/vnd.hmrc.5.0+json",
                    "version": "5.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                    "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 404,
          "durationMs": 346
        }
      }
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} returns OUTSIDE_AMENDMENT_WINDOW as a controlled HMRC error",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:49:54.698231Z",
      "durationMs": 159,
      "steps": [
        {
          "message": "Expected HMRC to return a controlled error.",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "stage": "Cumulative submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
          },
          "body": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2025-07-05"
            },
            "periodIncome": {
              "turnover": 1840.25,
              "other": 0.0,
              "taxTakenOffTradingIncome": 0.0
            },
            "periodExpenses": {
              "adminCosts": 145.8
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 9.5
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "OUTSIDE_AMENDMENT_WINDOW",
            "RULE_OUTSIDE_AMENDMENT_WINDOW"
          ]
        },
        "status": {
          "scenario": "failed",
          "http": 200,
          "durationMs": 37
        }
      },
      "error": "Expected error but the request succeeded."
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} returns TAX_YEAR_NOT_SUPPORTED as a controlled HMRC error",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:49:54.860707Z",
      "durationMs": 165,
      "steps": [
        {
          "message": "Expected HMRC to return a controlled error.",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "stage": "Cumulative submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "TAX_YEAR_NOT_SUPPORTED"
          },
          "body": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2025-07-05"
            },
            "periodIncome": {
              "turnover": 1840.25,
              "other": 0.0,
              "taxTakenOffTradingIncome": 0.0
            },
            "periodExpenses": {
              "adminCosts": 145.8
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 9.5
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "TAX_YEAR_NOT_SUPPORTED",
            "RULE_TAX_YEAR_NOT_SUPPORTED"
          ]
        },
        "status": {
          "scenario": "failed",
          "http": 200,
          "durationMs": 29
        }
      },
      "error": "Expected error but the request succeeded."
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise triggers a tax calculation",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:55.028869Z",
      "durationMs": 348,
      "steps": [
        {
          "message": "Tax calculation trigger returned calculationId c75dbb53-6237-49e2-b05a-60ef221f0260.",
          "passed": true
        },
        {
          "message": "Tax calculation trigger completed through the worker-backed Individual Calculations API route.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb840b576306",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 202,
              "correlationId": "5268f73c-af14-4d01-a31d-71930559f8fe",
              "payload": {
                "calculationId": "c75dbb53-6237-49e2-b05a-60ef221f0260"
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "calculationId": "c75dbb53-6237-49e2-b05a-60ef221f0260"
            }
          ]
        },
        "details": {
          "attemptCount": 1,
          "message": "Tax calculation triggered with HMRC.",
          "statusCode": 200,
          "hmrcStatusCode": 202,
          "correlationId": "5268f73c-af14-4d01-a31d-71930559f8fe"
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 213
        }
      }
    },
    {
      "name": "Individual Calculations API GET /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/{calculationId} retrieves the triggered tax calculation",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:55.380497Z",
      "durationMs": 328,
      "steps": [
        {
          "message": "Tax calculation retrieval returned worker status 200 after 1 attempt(s).",
          "passed": true
        },
        {
          "message": "Retrieved tax calculation metadata included calculationId f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/c75dbb53-6237-49e2-b05a-60ef221f0260",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/c75dbb53-6237-49e2-b05a-60ef221f0260",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb863bcb3aad",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/c75dbb53-6237-49e2-b05a-60ef221f0260",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/c75dbb53-6237-49e2-b05a-60ef221f0260",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "GetTaxCalculation",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/{calculationId}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/c75dbb53-6237-49e2-b05a-60ef221f0260"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "552dc2fa-ff2c-46c3-91a3-7b819d3451b0",
              "payload": {
                "metadata": {
                  "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
                  "taxYear": "2025-26",
                  "requestedBy": "customer",
                  "requestedTimestamp": "2025-04-15T09:35:15.094Z",
                  "calculationReason": "customer-request",
                  "calculationTimestamp": "2025-04-15T09:35:15.094Z",
                  "calculationType": "intent-to-amend",
                  "finalisationTimestamp": "2025-04-15T09:35:15.094Z",
                  "confirmationTimestamp": "2025-04-15T09:35:15.094Z",
                  "periodFrom": "2025-04-06",
                  "periodTo": "2026-04-05"
                },
                "inputs": {
                  "personalInformation": {
                    "identifier": "VO123456A",
                    "dateOfBirth": "2018-04-06",
                    "taxRegime": "uk",
                    "statePensionAgeDate": "2050-04-06",
                    "studentLoanPlan": [
                      {
                        "planType": "plan1"
                      }
                    ],
                    "class2VoluntaryContributions": true,
                    "marriageAllowance": "transferor",
                    "uniqueTaxpayerReference": "1234567890",
                    "itsaStatus": "No Status"
                  },
                  "incomeSources": {
                    "businessIncomeSources": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "incomeSourceName": "string",
                        "accountingPeriodStartDate": "2018-04-06",
                        "accountingPeriodEndDate": "2019-04-05",
                        "source": "MTD-SA",
                        "commencementDate": "2018-04-06",
                        "cessationDate": "2019-04-05",
                        "latestPeriodEndDate": "2021-12-02",
                        "latestReceivedDateTime": "2021-12-02T15:25:48.475Z",
                        "submissionPeriod": {
                          "submissionId": "001",
                          "startDate": "2018-04-06",
                          "endDate": "2019-04-05",
                          "receivedDateTime": "2019-02-15T09:35:04.843Z"
                        }
                      }
                    ],
                    "nonBusinessIncomeSources": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "uk-savings-and-gains",
                        "incomeSourceName": "Savings Account 1",
                        "startDate": "2018-04-06",
                        "endDate": "2019-04-05",
                        "source": "MTD-SA",
                        "periodId": "001",
                        "latestReceivedDateTime": "2019-08-01T13:02:09.775Z"
                      }
                    ]
                  },
                  "annualAdjustments": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "bsasId": "123a456b-789c-1d23-845e-678b9d1bd2ab",
                      "receivedDateTime": "2021-12-02T15:25:48.475Z",
                      "applied": true
                    }
                  ],
                  "lossesBroughtForward": [
                    {
                      "lossId": "0yriP9QrW2jTa6n",
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                      "lossType": "income",
                      "taxYearLossIncurred": "2017-18",
                      "currentLossValue": 12500,
                      "mtdLoss": false
                    }
                  ],
                  "claims": [
                    {
                      "claimId": "0vayS9JrW2jTa6n",
                      "originatingClaimId": "0vayS9JrW2jTa6n",
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                      "taxYearClaimMade": "2017-18",
                      "claimType": "carry-forward",
                      "sequence": 1
                    }
                  ],
                  "constructionIndustryScheme": [
                    {
                      "employerRef": "123/AA12345",
                      "contractorName": "string",
                      "periodData": [
                        {
                          "deductionFromDate": "2021-12-02",
                          "deductionToDate": "2021-12-02",
                          "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                          "source": "contractor",
                          "deductionAmount": 5000.99
                        }
                      ]
                    }
                  ],
                  "allowancesReliefsAndDeductions": [
                    {
                      "type": "investment-reliefs",
                      "submittedTimestamp": "2021-12-02T15:25:48.475Z",
                      "startDate": "2021-12-02",
                      "endDate": "2021-12-02",
                      "source": "MTD-SA"
                    }
                  ],
                  "pensionContributionAndCharges": [
                    {
                      "type": "pension-reliefs",
                      "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                      "startDate": "2021-12-02",
                      "endDate": "2021-12-02",
                      "source": "customer"
                    }
                  ],
                  "other": [
                    {
                      "type": "coding-out",
                      "submittedOn": "2021-12-02T15:25:48.475Z"
                    }
                  ]
                },
                "calculation": {
                  "taxCalculation": {
                    "incomeTax": {
                      "totalIncomeReceivedFromAllSources": 12500,
                      "totalAllowancesAndDeductions": 12500,
                      "totalTaxableIncome": 12500,
                      "payPensionsProfit": {
                        "incomeReceived": 12500,
                        "allowancesAllocated": 12500,
                        "taxableIncome": 12500,
                        "incomeTaxAmount": 5000.99,
                        "taxBands": [
                          {
                            "name": "savings-starter-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "income": 12500,
                            "taxAmount": 5000.99
                          }
                        ]
                      },
                      "savingsAndGains": {
                        "incomeReceived": 12500,
                        "allowancesAllocated": 12500,
                        "taxableIncome": 12500,
                        "incomeTaxAmount": 5000.99,
                        "taxBands": [
                          {
                            "name": "savings-starter-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "income": 12500,
                            "taxAmount": 5000.99
                          }
                        ]
                      },
                      "dividends": {
                        "incomeReceived": 12500,
                        "allowancesAllocated": 12500,
                        "taxableIncome": 12500,
                        "incomeTaxAmount": 5000.99,
                        "taxBands": [
                          {
                            "name": "savings-starter-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "income": 12500,
                            "taxAmount": 5000.99
                          }
                        ]
                      },
                      "lumpSums": {
                        "incomeReceived": 12500,
                        "allowancesAllocated": 12500,
                        "taxableIncome": 12500,
                        "incomeTaxAmount": 5000.99,
                        "taxBands": [
                          {
                            "name": "savings-starter-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "income": 12500,
                            "taxAmount": 5000.99
                          }
                        ]
                      },
                      "gainsOnLifePolicies": {
                        "incomeReceived": 12500,
                        "allowancesAllocated": 12500,
                        "taxableIncome": 12500,
                        "incomeTaxAmount": 5000.99,
                        "taxBands": [
                          {
                            "name": "savings-starter-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "income": 12500,
                            "taxAmount": 5000.99
                          }
                        ]
                      },
                      "incomeTaxCharged": 5000.99,
                      "totalReliefs": 5000.99,
                      "incomeTaxDueAfterReliefs": -99999999999.99,
                      "totalNotionalTax": 5000.99,
                      "marriageAllowanceRelief": 5000.99,
                      "incomeTaxDueAfterTaxReductions": 5000.99,
                      "incomeTaxDueAfterGiftAid": 5000.99,
                      "totalPensionSavingsTaxCharges": 5000.99,
                      "statePensionLumpSumCharges": 5000.99,
                      "payeUnderpaymentsCodedOut": 5000.99,
                      "totalIncomeTaxDue": 5000.99,
                      "giftAidTaxChargeWhereBasicRateDiffers": 5000.99,
                      "highIncomeBenefitCharge": 5000.99
                    },
                    "nics": {
                      "class2Nics": {
                        "amount": 5000.99,
                        "weeklyRate": 5000.99,
                        "weeks": 0,
                        "limit": 12500,
                        "apportionedLimit": 12500,
                        "underSmallProfitThreshold": true,
                        "underLowerProfitThreshold": true,
                        "actualClass2Nic": true
                      },
                      "class4Nics": {
                        "totalIncomeLiableToClass4Charge": 12500,
                        "totalClass4LossesAvailable": 12500,
                        "totalClass4LossesUsed": 12500,
                        "totalClass4LossesCarriedForward": 12500,
                        "totalIncomeChargeableToClass4": 12500,
                        "totalAmount": 5000.99,
                        "nic4Bands": [
                          {
                            "name": "zero-rate",
                            "rate": 20.99,
                            "threshold": 12500,
                            "apportionedThreshold": 12500,
                            "income": 12500,
                            "amount": 5000.99
                          }
                        ]
                      },
                      "nic2NetOfDeductions": -99999999999.99,
                      "nic4NetOfDeductions": -99999999999.99,
                      "totalNic": -99999999999.99
                    },
                    "totalTaxDeductedBeforeCodingOut": 5000.99,
                    "saUnderpaymentsCodedOut": 5000.99,
                    "totalIncomeTaxNicsCharged": -99999999999.99,
                    "totalStudentLoansRepaymentAmount": 5000.99,
                    "totalAnnuityPaymentsTaxCharged": 12500.25,
                    "totalRoyaltyPaymentsTaxCharged": 5000.99,
                    "totalTaxDeducted": -99999999999.99,
                    "totalIncomeTaxAndNicsDue": -99999999999.99,
                    "capitalGainsTax": {
                      "totalCapitalGainsIncome": 5000.99,
                      "annualExemptionAmount": 5000.99,
                      "totalTaxableGains": 5000.99,
                      "businessAssetsDisposalsAndInvestorsRel": {
                        "gainsIncome": 5000.99,
                        "lossesBroughtForward": 5000.99,
                        "lossesArisingThisYear": 5000.99,
                        "gainsAfterLosses": 5000.99,
                        "annualExemptionAmount": 5000.99,
                        "taxableGains": 5000.99,
                        "rate": 20.99,
                        "taxAmount": 5000.99
                      },
                      "residentialPropertyAndCarriedInterest": {
                        "gainsIncome": 5000.99,
                        "lossesBroughtForward": 5000.99,
                        "lossesArisingThisYear": 5000.99,
                        "gainsAfterLosses": 5000.99,
                        "annualExemptionAmount": 5000.99,
                        "taxableGains": 5000.99,
                        "cgtTaxBands": [
                          {
                            "name": "lower-rate",
                            "rate": 20.99,
                            "income": 5000.99,
                            "taxAmount": 5000.99
                          }
                        ],
                        "totalTaxAmount": 5000.99
                      },
                      "otherGains": {
                        "gainsIncome": 5000.99,
                        "lossesBroughtForward": 5000.99,
                        "lossesArisingThisYear": 5000.99,
                        "gainsAfterLosses": 5000.99,
                        "attributedGains": 5000.99,
                        "netGains": 5000.99,
                        "annualExemptionAmount": 5000.99,
                        "taxableGains": 5000.99,
                        "cgtTaxBands": [
                          {
                            "name": "lower-rate",
                            "rate": 20.99,
                            "income": 5000.99,
                            "taxAmount": 5000.99
                          }
                        ],
                        "totalTaxAmount": 5000.99
                      },
                      "capitalGainsTaxAmount": 5000.99,
                      "adjustments": -99999999999.99,
                      "adjustedCapitalGainsTax": 5000.99,
                      "foreignTaxCreditRelief": 5000.99,
                      "capitalGainsTaxAfterFTCR": 5000.99,
                      "taxOnGainsAlreadyPaid": 5000.99,
                      "capitalGainsTaxDue": 5000.99,
                      "capitalGainsOverpaid": 5000.99
                    },
                    "totalIncomeTaxAndNicsAndCgt": 5000.99
                  },
                  "chargeableEventGainsIncome": {
                    "totalOfAllGains": 12500,
                    "totalGainsWithTaxPaid": 12500,
                    "gainsWithTaxPaidDetail": [
                      {
                        "type": "life-insurance",
                        "customerReference": "string",
                        "gainAmount": 5000.99,
                        "yearsHeld": 0,
                        "yearsHeldSinceLastGain": 0
                      }
                    ],
                    "totalGainsWithNoTaxPaidAndVoidedIsa": 12500,
                    "gainsWithNoTaxPaidAndVoidedIsaDetail": [
                      {
                        "type": "life-insurance",
                        "customerReference": "string",
                        "gainAmount": 5000.99,
                        "yearsHeld": 0,
                        "yearsHeldSinceLastGain": 0,
                        "voidedIsaTaxPaid": 5000.99
                      }
                    ],
                    "totalForeignGainsOnLifePoliciesTaxPaid": 12500,
                    "foreignGainsOnLifePoliciesTaxPaidDetail": [
                      {
                        "customerReference": "string",
                        "gainAmount": 5000.99,
                        "taxPaidAmount": 5000.99,
                        "yearsHeld": 0
                      }
                    ],
                    "totalForeignGainsOnLifePoliciesNoTaxPaid": 12500,
                    "foreignGainsOnLifePoliciesNoTaxPaidDetail": [
                      {
                        "customerReference": "string",
                        "gainAmount": 5000.99,
                        "yearsHeld": 0
                      }
                    ]
                  },
                  "transitionProfit": {
                    "totalTaxableTransitionProfit": 2000,
                    "transitionProfitDetail": [
                      {
                        "incomeSourceId": "SAVKB2UVwUTBQGJ",
                        "incomeSourceName": "Savings Account",
                        "transitionProfitAmount": 2000.99,
                        "transitionProfitAccelerationAmount": 2000.99,
                        "totalTransitionProfit": 2000,
                        "remainingBroughtForwardIncomeTaxLosses": 2000,
                        "broughtForwardIncomeTaxLossesUsed": 2000,
                        "transitionProfitsAfterIncomeTaxLossDeductions": 2000
                      }
                    ]
                  },
                  "studentLoans": [
                    {
                      "planType": "plan1",
                      "studentLoanTotalIncomeAmount": 5000.99,
                      "studentLoanChargeableIncomeAmount": 5000.99,
                      "studentLoanRepaymentAmount": 5000.99,
                      "studentLoanDeductionsFromEmployment": 5000.99,
                      "studentLoanRepaymentAmountNetOfDeductions": 5000.99,
                      "studentLoanApportionedIncomeThreshold": 12500,
                      "studentLoanRate": 20.99,
                      "payeIncomeForStudentLoan": 5000.99,
                      "nonPayeIncomeForStudentLoan": 5000.99
                    }
                  ],
                  "foreignIncome": {
                    "chargeableOverseasPensionsStateBenefitsRoyalties": 5000.99,
                    "overseasPensionsStateBenefitsRoyaltiesDetail": [
                      {
                        "countryCode": "FRA",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99,
                        "foreignTaxCreditRelief": true
                      }
                    ],
                    "chargeableAllOtherIncomeReceivedWhilstAbroad": 5000.99,
                    "allOtherIncomeReceivedWhilstAbroadDetail": [
                      {
                        "countryCode": "FRA",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99,
                        "foreignTaxCreditRelief": true
                      }
                    ],
                    "overseasIncomeAndGains": {
                      "gainAmount": 5000.99
                    },
                    "totalForeignBenefitsAndGifts": 5000.99,
                    "chargeableForeignBenefitsAndGiftsDetail": {
                      "transactionBenefit": 5000.99,
                      "protectedForeignIncomeSourceBenefit": 5000.99,
                      "protectedForeignIncomeOnwardGift": 5000.99,
                      "benefitReceivedAsASettler": 5000.99,
                      "onwardGiftReceivedAsASettler": 5000.99
                    }
                  },
                  "royaltyPayments": {
                    "royaltyPaymentsAmount": 12500,
                    "rate": 20.99,
                    "grossRoyaltyPayments": 12500
                  },
                  "lossesAndClaims": {
                    "resultOfClaimsApplied": [
                      {
                        "claimId": "0vayS9JrW2jTa6n",
                        "originatingClaimId": "0vayS9JrW2jTa6n",
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "taxYearClaimMade": "2017-18",
                        "claimType": "carry-forward",
                        "mtdLoss": false,
                        "taxYearLossIncurred": "2017-18",
                        "lossAmountUsed": 12500,
                        "remainingLossValue": 12500,
                        "lossType": "income"
                      }
                    ],
                    "unclaimedLosses": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "taxYearLossIncurred": "2017-18",
                        "currentLossValue": 12500,
                        "lossType": "income"
                      }
                    ],
                    "carriedForwardLosses": [
                      {
                        "claimId": "0vayS9JrW2jTa6n",
                        "originatingClaimId": "0vayS9JrW2jTa6n",
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "claimType": "carry-forward",
                        "taxYearClaimMade": "2017-18",
                        "taxYearLossIncurred": "2017-18",
                        "currentLossValue": 12500,
                        "lossType": "income"
                      }
                    ],
                    "defaultCarriedForwardLosses": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "taxYearLossIncurred": "2017-18",
                        "currentLossValue": 12500
                      }
                    ],
                    "claimsNotApplied": [
                      {
                        "claimId": "0vayS9JrW2jTa6n",
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "taxYearClaimMade": "2017-18",
                        "claimType": "carry-forward"
                      }
                    ]
                  },
                  "employmentExpenses": {
                    "totalEmploymentExpenses": 5000.99,
                    "employmentExpensesDetail": {
                      "businessTravelCosts": 5000.99,
                      "jobExpenses": 5000.99,
                      "flatRateJobExpenses": 5000.99,
                      "professionalSubscriptions": 5000.99,
                      "hotelAndMealExpenses": 5000.99,
                      "otherAndCapitalAllowances": 5000.99,
                      "vehicleExpenses": 5000.99,
                      "mileageAllowanceRelief": 5000.99
                    }
                  },
                  "savingsAndGainsIncome": {
                    "totalChargeableSavingsAndGains": 12500,
                    "totalUkSavingsAndGains": 12500,
                    "ukSavingsAndGainsIncome": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "uk-savings-and-gains",
                        "incomeSourceName": "My Savings Account 1",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99
                      }
                    ],
                    "chargeableForeignSavingsAndGains": 12500,
                    "foreignSavingsAndGainsIncome": [
                      {
                        "incomeSourceType": "foreign-savings-and-gains",
                        "countryCode": "DEU",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99,
                        "foreignTaxCreditRelief": true
                      }
                    ]
                  },
                  "reliefs": {
                    "residentialFinanceCosts": {
                      "adjustedTotalIncome": 5000.99,
                      "totalAllowableAmount": 5000.99,
                      "relievableAmount": 5000.99,
                      "rate": 20.99,
                      "totalResidentialFinanceCostsRelief": 5000.99,
                      "ukProperty": {
                        "amountClaimed": 12500,
                        "allowableAmount": 5000.99,
                        "carryForwardAmount": 5000.99
                      },
                      "foreignProperty": {
                        "totalForeignPropertyAllowableAmount": 5000.99,
                        "foreignPropertyRfcDetail": [
                          {
                            "countryCode": "FRA",
                            "amountClaimed": 12500,
                            "allowableAmount": 5000.99,
                            "carryForwardAmount": 5000.99
                          }
                        ]
                      },
                      "allOtherIncomeReceivedWhilstAbroad": {
                        "totalOtherIncomeAllowableAmount": 5000.99,
                        "otherIncomeRfcDetail": [
                          {
                            "countryCode": "FRA",
                            "residentialFinancialCostAmount": 5000.99,
                            "broughtFwdResidentialFinancialCostAmount": 5000.99
                          }
                        ]
                      }
                    },
                    "reliefsClaimed": [
                      {
                        "type": "vct-subscriptions",
                        "amountClaimed": 5000.99,
                        "allowableAmount": 5000.99,
                        "amountUsed": 5000.99,
                        "rate": 20.99,
                        "reliefsClaimedDetail": [
                          {
                            "amountClaimed": 5000.99,
                            "uniqueInvestmentRef": "string",
                            "name": "string",
                            "companyName": "string",
                            "deficiencyReliefType": "life-insurance",
                            "customerReference": "string"
                          }
                        ]
                      }
                    ],
                    "foreignTaxCreditRelief": {
                      "customerCalculatedRelief": true,
                      "totalForeignTaxCreditRelief": 5000.99,
                      "foreignTaxCreditReliefOnProperty": 5000.99,
                      "foreignTaxCreditReliefOnDividends": 5000.99,
                      "foreignTaxCreditReliefOnSavings": 5000.99,
                      "foreignTaxCreditReliefOnForeignIncome": 5000.99,
                      "foreignTaxCreditReliefDetail": [
                        {
                          "incomeSourceType": "foreign-property",
                          "incomeSourceId": "000000000000210",
                          "countryCode": "FRA",
                          "foreignIncome": 5000.99,
                          "foreignTax": 5000.99,
                          "dtaRate": 20.99,
                          "dtaAmount": 5000.99,
                          "ukLiabilityOnIncome": 5000.99,
                          "foreignTaxCredit": 5000.99,
                          "employmentLumpSum": true
                        }
                      ]
                    },
                    "topSlicingRelief": {
                      "amount": 5000.99
                    },
                    "basicRateExtension": {
                      "totalBasicRateExtension": 5000.99,
                      "giftAidRelief": 3000,
                      "pensionContributionReliefs": 5000.58
                    },
                    "giftAidTaxReductionWhereBasicRateDiffers": {
                      "amount": 5000.99
                    }
                  },
                  "highIncomeChildBenefitCharge": {
                    "adjustedNetIncome": 2000.01,
                    "amountOfChildBenefitReceived": 2000.01,
                    "incomeThreshold": 60000,
                    "childBenefitChargeTaper": 200,
                    "rate": 10.25,
                    "highIncomeBenefitCharge": 32000.01
                  },
                  "stateBenefitsIncome": {
                    "totalStateBenefitsIncome": 5000.99,
                    "totalStateBenefitsTaxPaid": -99999999999.99,
                    "stateBenefitsDetail": {
                      "incapacityBenefit": [
                        {
                          "incomeSourceId": "8d52ce90-44d7-4f54-a852-c3649c032ad2",
                          "amount": 5000.99,
                          "taxPaid": 5000.99,
                          "source": "customer"
                        }
                      ],
                      "statePension": [
                        {
                          "incomeSourceId": "b3c35b58-f922-45f2-b9ce-bf5d8d02ae1d",
                          "amount": 5000.99,
                          "source": "customer"
                        }
                      ],
                      "statePensionLumpSum": [
                        {
                          "incomeSourceId": "98c46e27-5a68-424b-9529-08a955ebed14",
                          "amount": 5000.99,
                          "taxPaid": 5000.99,
                          "rate": 20.99,
                          "source": "customer"
                        }
                      ],
                      "employmentSupportAllowance": [
                        {
                          "incomeSourceId": "5d8c1388-2fe6-4383-9dbb-714c5691fa0d",
                          "amount": 5000.99,
                          "taxPaid": -99999999999.99,
                          "source": "customer"
                        }
                      ],
                      "jobSeekersAllowance": [
                        {
                          "incomeSourceId": "1d6e0bed-9515-4a53-8b8f-f64602511a79",
                          "amount": 5000.99,
                          "taxPaid": -99999999999.99,
                          "source": "customer"
                        }
                      ],
                      "bereavementAllowance": [
                        {
                          "incomeSourceId": "fee9c698-4920-4aed-9d34-482b7de4765f",
                          "amount": 5000.99,
                          "source": "customer"
                        }
                      ],
                      "otherStateBenefits": [
                        {
                          "incomeSourceId": "69e598f6-7f99-40d6-998f-bfca16c20d12",
                          "amount": 5000.99,
                          "source": "customer"
                        }
                      ]
                    },
                    "totalStateBenefitsIncomeExcStatePensionLumpSum": 5000.99
                  },
                  "incomeSummaryTotals": {
                    "totalSelfEmploymentProfit": 12500,
                    "totalPropertyProfit": 12500,
                    "totalUKOtherPropertyProfit": 12500,
                    "totalForeignPropertyProfit": 12500,
                    "totalEmploymentIncome": 12500
                  },
                  "employmentAndPensionsIncome": {
                    "totalPayeEmploymentAndLumpSumIncome": 5000.99,
                    "totalOccupationalPensionIncome": 5000.99,
                    "totalBenefitsInKind": 5000.99,
                    "tipsIncome": 5000.99,
                    "employmentAndPensionsIncomeDetail": [
                      {
                        "incomeSourceId": "07cedb23-ecdf-4bce-919b-e4be46a98704",
                        "source": "customer",
                        "occupationalPension": true,
                        "employerRef": "123/AA12345",
                        "employerName": "string",
                        "offPayrollWorker": true,
                        "payrollId": "YDIAHPcYFQbOXLCKQ",
                        "startDate": "2021-12-02",
                        "dateEmploymentEnded": "2021-12-02",
                        "taxablePayToDate": 5000.99,
                        "totalTaxToDate": -99999999999.99,
                        "disguisedRemuneration": true,
                        "lumpSums": {
                          "totalLumpSum": 5000.99,
                          "totalTaxPaid": 5000.99,
                          "lumpSumsDetail": {
                            "taxableLumpSumsAndCertainIncome": {
                              "amount": 5000.99,
                              "taxPaid": 5000.99,
                              "taxTakenOffInEmployment": true
                            },
                            "benefitFromEmployerFinancedRetirementScheme": {
                              "amount": 5000.99,
                              "exemptAmount": 5000.99,
                              "taxPaid": 5000.99,
                              "taxTakenOffInEmployment": true
                            },
                            "redundancyCompensationPaymentsOverExemption": {
                              "amount": 5000.99,
                              "taxPaid": 5000.99,
                              "taxTakenOffInEmployment": true
                            },
                            "redundancyCompensationPaymentsUnderExemption": {
                              "amount": 5000.99
                            }
                          }
                        },
                        "studentLoans": {
                          "uglDeductionAmount": 5000.99,
                          "pglDeductionAmount": 5000.99
                        },
                        "benefitsInKind": {
                          "totalBenefitsInKindReceived": 5000.99,
                          "benefitsInKindDetail": {
                            "apportionedVanFuel": 5000.99,
                            "apportionedIncomeTaxPaidByDirector": 5000.99,
                            "apportionedNonQualifyingRelocationExpenses": 5000.99,
                            "apportionedEmployerProvidedProfessionalSubscriptions": 5000.99,
                            "apportionedCar": 5000.99,
                            "apportionedNonCash": 5000.99,
                            "apportionedMedicalInsurance": 5000.99,
                            "apportionedEducationalServices": 5000.99,
                            "apportionedTaxableExpenses": 5000.99,
                            "apportionedExpenses": 5000.99,
                            "apportionedBeneficialLoan": 5000.99,
                            "apportionedOtherItems": 5000.99,
                            "apportionedVan": 5000.99,
                            "apportionedVouchersAndCreditCards": 5000.99,
                            "apportionedAccommodation": 5000.99,
                            "apportionedEmployerProvidedServices": 5000.99,
                            "apportionedNurseryPlaces": 5000.99,
                            "apportionedEntertaining": 5000.99,
                            "apportionedPersonalIncidentalExpenses": 5000.99,
                            "apportionedTravelAndSubsistence": 5000.99,
                            "apportionedTelephone": 5000.99,
                            "apportionedAssetTransfer": 5000.99,
                            "apportionedCarFuel": 5000.99,
                            "apportionedPaymentsOnEmployeesBehalf": 5000.99,
                            "apportionedService": 5000.99,
                            "apportionedMileage": 5000.99,
                            "apportionedQualifyingRelocationExpenses": 5000.99,
                            "apportionedAssets": 5000.99
                          }
                        }
                      }
                    ]
                  },
                  "foreignTaxForFtcrNotClaimed": {
                    "foreignTaxOnForeignEmployment": 5000.99
                  },
                  "marriageAllowanceTransferredIn": {
                    "amount": 5000.99,
                    "rate": 20.99
                  },
                  "pensionContributionReliefs": {
                    "totalPensionContributionReliefs": 5000.99,
                    "pensionContributionDetail": {
                      "regularPensionContributions": 5000.99,
                      "oneOffPensionContributionsPaid": 5000.99
                    }
                  },
                  "seafarersDeductions": {
                    "totalSeafarersDeduction": 5000.99,
                    "seafarersDeductionDetail": [
                      {
                        "nameOfShip": "string",
                        "amountDeducted": 5000.99
                      }
                    ]
                  },
                  "allowancesAndDeductions": {
                    "personalAllowance": 12500,
                    "marriageAllowanceTransferOut": {
                      "personalAllowanceBeforeTransferOut": 5000.99,
                      "transferredOutAmount": 5000.99
                    },
                    "reducedPersonalAllowance": 12500,
                    "giftOfInvestmentsAndPropertyToCharity": 12500,
                    "blindPersonsAllowance": 12500,
                    "lossesAppliedToGeneralIncome": 12500,
                    "cgtLossSetAgainstInYearGeneralIncome": 12500,
                    "qualifyingLoanInterestFromInvestments": 5000.99,
                    "postCessationTradeReceipts": 5000.99,
                    "paymentsToTradeUnionsForDeathBenefits": 5000.99,
                    "grossAnnuityPayments": 5000.99,
                    "annuityPayments": {
                      "reliefClaimed": 5000.99,
                      "rate": 20.99
                    },
                    "pensionContributions": 5000.99,
                    "pensionContributionsDetail": {
                      "retirementAnnuityPayments": 5000.99,
                      "paymentToEmployersSchemeNoTaxRelief": 5000.99,
                      "overseasPensionSchemeContributions": 5000.99
                    }
                  },
                  "pensionSavingsTaxCharges": {
                    "totalPensionCharges": 5000.99,
                    "totalTaxPaid": 5000.99,
                    "totalPensionChargesDue": 5000.99,
                    "pensionSavingsTaxChargesDetail": {
                      "pensionSchemeUnauthorisedPayments": {
                        "totalChargeableAmount": 5000.99,
                        "totalTaxPaid": 5000.99,
                        "pensionSchemeUnauthorisedPaymentsSurcharge": {
                          "amount": 5000.99,
                          "taxPaid": 5000.99,
                          "rate": 20.99,
                          "chargeableAmount": 5000.99
                        },
                        "pensionSchemeUnauthorisedPaymentsNonSurcharge": {
                          "amount": 5000.99,
                          "taxPaid": 5000.99,
                          "rate": 20.99,
                          "chargeableAmount": 5000.99
                        }
                      },
                      "pensionSchemeOverseasTransfers": {
                        "transferCharge": 5000.99,
                        "transferChargeTaxPaid": 5000.99,
                        "rate": 20.99,
                        "chargeableAmount": 5000.99
                      },
                      "pensionContributionsInExcessOfTheAnnualAllowance": {
                        "totalContributions": 5000.99,
                        "totalPensionCharge": 5000.99,
                        "annualAllowanceTaxPaid": 5000.99,
                        "totalPensionChargeDue": 5000.99,
                        "pensionBands": [
                          {
                            "name": "basic-rate",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "contributionAmount": 5000.99,
                            "pensionCharge": 5000.99
                          }
                        ]
                      },
                      "overseasPensionContributions": {
                        "totalShortServiceRefund": 5000.99,
                        "totalShortServiceRefundCharge": 5000.99,
                        "shortServiceRefundTaxPaid": 5000.99,
                        "totalShortServiceRefundChargeDue": 5000.99,
                        "shortServiceRefundBands": [
                          {
                            "name": "lower-band",
                            "rate": 20.99,
                            "bandLimit": 12500,
                            "apportionedBandLimit": 12500,
                            "shortServiceRefundAmount": 5000.99,
                            "shortServiceRefundCharge": 5000.99
                          }
                        ]
                      }
                    }
                  },
                  "giftAid": {
                    "grossGiftAidPayments": 12500,
                    "rate": 20.99,
                    "giftAidTax": 5000.99,
                    "giftAidTaxReductions": 5000.99,
                    "incomeTaxChargedAfterGiftAidTaxReductions": 5000.99,
                    "giftAidCharge": 5000.99
                  },
                  "previousCalculation": {
                    "calculationTimestamp": "2021-12-02T15:25:48.475Z",
                    "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
                    "totalIncomeTaxAndNicsDue": -99999999999.99,
                    "cgtTaxDue": 5000.99,
                    "totalIncomeTaxAndNicsAndCgtDue": 5000.99,
                    "incomeTaxNicDueThisPeriod": -99999999999.99,
                    "cgtDueThisPeriod": -99999999999.99,
                    "totalIncomeTaxAndNicsAndCgtDueThisPeriod": 5000.99
                  },
                  "otherIncome": {
                    "totalOtherIncome": 2000,
                    "postCessationIncome": {
                      "totalPostCessationReceipts": 2000,
                      "postCessationReceipts": [
                        {
                          "amount": 100,
                          "taxYearIncomeToBeTaxed": "2019-20"
                        }
                      ]
                    }
                  },
                  "shareSchemesIncome": {
                    "totalIncome": 5000.99,
                    "shareSchemeDetail": [
                      {
                        "type": "share-option",
                        "employerName": "string",
                        "employerRef": "123/AA12345",
                        "taxableAmount": 5000.99
                      }
                    ]
                  },
                  "taxDeductedAtSource": {
                    "bbsi": 5000.99,
                    "ukLandAndProperty": 5000.99,
                    "cis": 5000.99,
                    "securities": 5000.99,
                    "voidedIsa": 5000.99,
                    "payeEmployments": 5000.99,
                    "occupationalPensions": 5000.99,
                    "stateBenefits": -99999999999.99,
                    "specialWithholdingTaxOrUkTaxPaid": 5000.99,
                    "inYearAdjustmentCodedInLaterTaxYear": 5000.99,
                    "taxTakenOffTradingIncome": 5000.99
                  },
                  "endOfYearEstimate": {
                    "incomeSource": [
                      {
                        "incomeSourceId": "000000000000210",
                        "incomeSourceType": "self-employment",
                        "incomeSourceName": "string",
                        "taxableIncome": 12500
                      }
                    ],
                    "totalEstimatedIncome": 12500,
                    "totalAllowancesAndDeductions": 5311,
                    "totalTaxableIncome": 12500,
                    "incomeTaxAmount": 5000.99,
                    "nic2": 5000.99,
                    "nic4": 5000.99,
                    "totalTaxDeductedBeforeCodingOut": 5000.99,
                    "saUnderpaymentsCodedOut": 5000.99,
                    "totalNicAmount": 5000.99,
                    "totalStudentLoansRepaymentAmount": 5000.99,
                    "totalAnnuityPaymentsTaxCharged": 5000.99,
                    "totalRoyaltyPaymentsTaxCharged": 5000.99,
                    "totalTaxDeducted": -99999999999.99,
                    "incomeTaxNicAmount": -99999999999.99,
                    "cgtAmount": 5000.99,
                    "incomeTaxNicAndCgtAmount": 5000.99
                  },
                  "foreignPropertyIncome": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "foreign-property",
                      "countryCode": "FRA",
                      "totalIncome": 5000.99,
                      "totalExpenses": 5000.99,
                      "netProfit": 5000.99,
                      "netLoss": 5000.99,
                      "totalAdditions": 5000.99,
                      "totalDeductions": 5000.99,
                      "taxableProfit": 5000.99,
                      "adjustedIncomeTaxLoss": 5000.99
                    }
                  ],
                  "notionalTax": {
                    "chargeableGains": 5000.99
                  },
                  "codedOutUnderpayments": {
                    "totalPayeUnderpayments": 5000.99,
                    "payeUnderpaymentsDetail": [
                      {
                        "amount": 5000.99,
                        "relatedTaxYear": "2019-20",
                        "source": "customer"
                      }
                    ],
                    "totalSelfAssessmentUnderpayments": 5000.99,
                    "totalCollectedSelfAssessmentUnderpayments": 5000.99,
                    "totalUncollectedSelfAssessmentUnderpayments": 5000.99,
                    "selfAssessmentUnderpaymentsDetail": [
                      {
                        "amount": 5000.99,
                        "relatedTaxYear": "2019-20",
                        "source": "customer",
                        "collectedAmount": 5000.99,
                        "uncollectedAmount": 5000.99
                      }
                    ]
                  },
                  "dividendsIncome": {
                    "totalChargeableDividends": 12500,
                    "totalUkDividends": 12500,
                    "ukDividends": {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "uk-dividends",
                      "dividends": 12500,
                      "otherUkDividends": 12500
                    },
                    "otherDividends": [
                      {
                        "typeOfDividend": "stock-dividend",
                        "customerReference": "string",
                        "grossAmount": 5000.99
                      }
                    ],
                    "chargeableForeignDividends": 12500,
                    "foreignDividends": [
                      {
                        "incomeSourceType": "foreign-dividends",
                        "countryCode": "ZZZ",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99,
                        "foreignTaxCreditRelief": true
                      }
                    ],
                    "dividendIncomeReceivedWhilstAbroad": [
                      {
                        "incomeSourceType": "foreign-dividends",
                        "countryCode": "ZZZ",
                        "grossIncome": 5000.99,
                        "netIncome": 5000.99,
                        "taxDeducted": 5000.99,
                        "foreignTaxCreditRelief": true
                      }
                    ]
                  },
                  "businessProfitAndLoss": [
                    {
                      "broughtForwardClass4LossesUsed": 12500,
                      "incomeSourceType": "self-employment",
                      "totalIncome": 5000.99,
                      "netProfit": 5000.99,
                      "netLoss": 5000.99,
                      "totalIncomeTaxLossesCarriedForward": 12500,
                      "totalClass4LossesCarriedForward": 12500,
                      "incomeSourceName": "string",
                      "totalExpenses": -99999999999.99,
                      "totalAdditions": -99999999999.99,
                      "taxableProfit": 12500,
                      "totalBroughtForwardIncomeTaxLosses": 12500,
                      "adjustedIncomeTaxLoss": 12500,
                      "adjustedProfit": 5000.99,
                      "carrySidewaysIncomeTaxLossesUsed": 12500,
                      "class4Loss": 12500,
                      "carrySidewaysClass4LossesUsed": 12500,
                      "broughtForwardCarrySidewaysIncomeTaxLossesUsed": 12500,
                      "broughtForwardIncomeTaxLossesUsed": 12500,
                      "outstandingBusinessIncome": 5000.99,
                      "incomeSourceId": "000000000000210",
                      "totalDeductions": 5000.99,
                      "taxableProfitAfterIncomeTaxLossesDeduction": 12500,
                      "totalBroughtForwardClass4Losses": 12500,
                      "accountingAdjustments": -99999999999.99
                    }
                  ]
                },
                "messages": {
                  "info": [
                    {
                      "id": "C22201",
                      "text": "Your BRT limit has been increased by 6375 to 40875 for Gift Aid payments."
                    }
                  ],
                  "warnings": [
                    {
                      "id": "C11009",
                      "text": "Period submissions include gaps"
                    }
                  ],
                  "errors": [
                    {
                      "id": "C95005",
                      "text": "Final confirmation of income and expenses for all business sources has not been provided"
                    }
                  ]
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "metadata": {
                "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
                "taxYear": "2025-26",
                "requestedBy": "customer",
                "requestedTimestamp": "2025-04-15T09:35:15.094Z",
                "calculationReason": "customer-request",
                "calculationTimestamp": "2025-04-15T09:35:15.094Z",
                "calculationType": "intent-to-amend",
                "finalisationTimestamp": "2025-04-15T09:35:15.094Z",
                "confirmationTimestamp": "2025-04-15T09:35:15.094Z",
                "periodFrom": "2025-04-06",
                "periodTo": "2026-04-05"
              },
              "inputs": {
                "personalInformation": {
                  "identifier": "VO123456A",
                  "dateOfBirth": "2018-04-06",
                  "taxRegime": "uk",
                  "statePensionAgeDate": "2050-04-06",
                  "studentLoanPlan": [
                    {
                      "planType": "plan1"
                    }
                  ],
                  "class2VoluntaryContributions": true,
                  "marriageAllowance": "transferor",
                  "uniqueTaxpayerReference": "1234567890",
                  "itsaStatus": "No Status"
                },
                "incomeSources": {
                  "businessIncomeSources": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "incomeSourceName": "string",
                      "accountingPeriodStartDate": "2018-04-06",
                      "accountingPeriodEndDate": "2019-04-05",
                      "source": "MTD-SA",
                      "commencementDate": "2018-04-06",
                      "cessationDate": "2019-04-05",
                      "latestPeriodEndDate": "2021-12-02",
                      "latestReceivedDateTime": "2021-12-02T15:25:48.475Z",
                      "submissionPeriod": {
                        "submissionId": "001",
                        "startDate": "2018-04-06",
                        "endDate": "2019-04-05",
                        "receivedDateTime": "2019-02-15T09:35:04.843Z"
                      }
                    }
                  ],
                  "nonBusinessIncomeSources": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "uk-savings-and-gains",
                      "incomeSourceName": "Savings Account 1",
                      "startDate": "2018-04-06",
                      "endDate": "2019-04-05",
                      "source": "MTD-SA",
                      "periodId": "001",
                      "latestReceivedDateTime": "2019-08-01T13:02:09.775Z"
                    }
                  ]
                },
                "annualAdjustments": [
                  {
                    "incomeSourceId": "000000000000210",
                    "incomeSourceType": "self-employment",
                    "bsasId": "123a456b-789c-1d23-845e-678b9d1bd2ab",
                    "receivedDateTime": "2021-12-02T15:25:48.475Z",
                    "applied": true
                  }
                ],
                "lossesBroughtForward": [
                  {
                    "lossId": "0yriP9QrW2jTa6n",
                    "incomeSourceId": "000000000000210",
                    "incomeSourceType": "self-employment",
                    "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                    "lossType": "income",
                    "taxYearLossIncurred": "2017-18",
                    "currentLossValue": 12500,
                    "mtdLoss": false
                  }
                ],
                "claims": [
                  {
                    "claimId": "0vayS9JrW2jTa6n",
                    "originatingClaimId": "0vayS9JrW2jTa6n",
                    "incomeSourceId": "000000000000210",
                    "incomeSourceType": "self-employment",
                    "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                    "taxYearClaimMade": "2017-18",
                    "claimType": "carry-forward",
                    "sequence": 1
                  }
                ],
                "constructionIndustryScheme": [
                  {
                    "employerRef": "123/AA12345",
                    "contractorName": "string",
                    "periodData": [
                      {
                        "deductionFromDate": "2021-12-02",
                        "deductionToDate": "2021-12-02",
                        "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                        "source": "contractor",
                        "deductionAmount": 5000.99
                      }
                    ]
                  }
                ],
                "allowancesReliefsAndDeductions": [
                  {
                    "type": "investment-reliefs",
                    "submittedTimestamp": "2021-12-02T15:25:48.475Z",
                    "startDate": "2021-12-02",
                    "endDate": "2021-12-02",
                    "source": "MTD-SA"
                  }
                ],
                "pensionContributionAndCharges": [
                  {
                    "type": "pension-reliefs",
                    "submissionTimestamp": "2021-12-02T15:25:48.475Z",
                    "startDate": "2021-12-02",
                    "endDate": "2021-12-02",
                    "source": "customer"
                  }
                ],
                "other": [
                  {
                    "type": "coding-out",
                    "submittedOn": "2021-12-02T15:25:48.475Z"
                  }
                ]
              },
              "calculation": {
                "taxCalculation": {
                  "incomeTax": {
                    "totalIncomeReceivedFromAllSources": 12500,
                    "totalAllowancesAndDeductions": 12500,
                    "totalTaxableIncome": 12500,
                    "payPensionsProfit": {
                      "incomeReceived": 12500,
                      "allowancesAllocated": 12500,
                      "taxableIncome": 12500,
                      "incomeTaxAmount": 5000.99,
                      "taxBands": [
                        {
                          "name": "savings-starter-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "income": 12500,
                          "taxAmount": 5000.99
                        }
                      ]
                    },
                    "savingsAndGains": {
                      "incomeReceived": 12500,
                      "allowancesAllocated": 12500,
                      "taxableIncome": 12500,
                      "incomeTaxAmount": 5000.99,
                      "taxBands": [
                        {
                          "name": "savings-starter-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "income": 12500,
                          "taxAmount": 5000.99
                        }
                      ]
                    },
                    "dividends": {
                      "incomeReceived": 12500,
                      "allowancesAllocated": 12500,
                      "taxableIncome": 12500,
                      "incomeTaxAmount": 5000.99,
                      "taxBands": [
                        {
                          "name": "savings-starter-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "income": 12500,
                          "taxAmount": 5000.99
                        }
                      ]
                    },
                    "lumpSums": {
                      "incomeReceived": 12500,
                      "allowancesAllocated": 12500,
                      "taxableIncome": 12500,
                      "incomeTaxAmount": 5000.99,
                      "taxBands": [
                        {
                          "name": "savings-starter-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "income": 12500,
                          "taxAmount": 5000.99
                        }
                      ]
                    },
                    "gainsOnLifePolicies": {
                      "incomeReceived": 12500,
                      "allowancesAllocated": 12500,
                      "taxableIncome": 12500,
                      "incomeTaxAmount": 5000.99,
                      "taxBands": [
                        {
                          "name": "savings-starter-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "income": 12500,
                          "taxAmount": 5000.99
                        }
                      ]
                    },
                    "incomeTaxCharged": 5000.99,
                    "totalReliefs": 5000.99,
                    "incomeTaxDueAfterReliefs": -99999999999.99,
                    "totalNotionalTax": 5000.99,
                    "marriageAllowanceRelief": 5000.99,
                    "incomeTaxDueAfterTaxReductions": 5000.99,
                    "incomeTaxDueAfterGiftAid": 5000.99,
                    "totalPensionSavingsTaxCharges": 5000.99,
                    "statePensionLumpSumCharges": 5000.99,
                    "payeUnderpaymentsCodedOut": 5000.99,
                    "totalIncomeTaxDue": 5000.99,
                    "giftAidTaxChargeWhereBasicRateDiffers": 5000.99,
                    "highIncomeBenefitCharge": 5000.99
                  },
                  "nics": {
                    "class2Nics": {
                      "amount": 5000.99,
                      "weeklyRate": 5000.99,
                      "weeks": 0,
                      "limit": 12500,
                      "apportionedLimit": 12500,
                      "underSmallProfitThreshold": true,
                      "underLowerProfitThreshold": true,
                      "actualClass2Nic": true
                    },
                    "class4Nics": {
                      "totalIncomeLiableToClass4Charge": 12500,
                      "totalClass4LossesAvailable": 12500,
                      "totalClass4LossesUsed": 12500,
                      "totalClass4LossesCarriedForward": 12500,
                      "totalIncomeChargeableToClass4": 12500,
                      "totalAmount": 5000.99,
                      "nic4Bands": [
                        {
                          "name": "zero-rate",
                          "rate": 20.99,
                          "threshold": 12500,
                          "apportionedThreshold": 12500,
                          "income": 12500,
                          "amount": 5000.99
                        }
                      ]
                    },
                    "nic2NetOfDeductions": -99999999999.99,
                    "nic4NetOfDeductions": -99999999999.99,
                    "totalNic": -99999999999.99
                  },
                  "totalTaxDeductedBeforeCodingOut": 5000.99,
                  "saUnderpaymentsCodedOut": 5000.99,
                  "totalIncomeTaxNicsCharged": -99999999999.99,
                  "totalStudentLoansRepaymentAmount": 5000.99,
                  "totalAnnuityPaymentsTaxCharged": 12500.25,
                  "totalRoyaltyPaymentsTaxCharged": 5000.99,
                  "totalTaxDeducted": -99999999999.99,
                  "totalIncomeTaxAndNicsDue": -99999999999.99,
                  "capitalGainsTax": {
                    "totalCapitalGainsIncome": 5000.99,
                    "annualExemptionAmount": 5000.99,
                    "totalTaxableGains": 5000.99,
                    "businessAssetsDisposalsAndInvestorsRel": {
                      "gainsIncome": 5000.99,
                      "lossesBroughtForward": 5000.99,
                      "lossesArisingThisYear": 5000.99,
                      "gainsAfterLosses": 5000.99,
                      "annualExemptionAmount": 5000.99,
                      "taxableGains": 5000.99,
                      "rate": 20.99,
                      "taxAmount": 5000.99
                    },
                    "residentialPropertyAndCarriedInterest": {
                      "gainsIncome": 5000.99,
                      "lossesBroughtForward": 5000.99,
                      "lossesArisingThisYear": 5000.99,
                      "gainsAfterLosses": 5000.99,
                      "annualExemptionAmount": 5000.99,
                      "taxableGains": 5000.99,
                      "cgtTaxBands": [
                        {
                          "name": "lower-rate",
                          "rate": 20.99,
                          "income": 5000.99,
                          "taxAmount": 5000.99
                        }
                      ],
                      "totalTaxAmount": 5000.99
                    },
                    "otherGains": {
                      "gainsIncome": 5000.99,
                      "lossesBroughtForward": 5000.99,
                      "lossesArisingThisYear": 5000.99,
                      "gainsAfterLosses": 5000.99,
                      "attributedGains": 5000.99,
                      "netGains": 5000.99,
                      "annualExemptionAmount": 5000.99,
                      "taxableGains": 5000.99,
                      "cgtTaxBands": [
                        {
                          "name": "lower-rate",
                          "rate": 20.99,
                          "income": 5000.99,
                          "taxAmount": 5000.99
                        }
                      ],
                      "totalTaxAmount": 5000.99
                    },
                    "capitalGainsTaxAmount": 5000.99,
                    "adjustments": -99999999999.99,
                    "adjustedCapitalGainsTax": 5000.99,
                    "foreignTaxCreditRelief": 5000.99,
                    "capitalGainsTaxAfterFTCR": 5000.99,
                    "taxOnGainsAlreadyPaid": 5000.99,
                    "capitalGainsTaxDue": 5000.99,
                    "capitalGainsOverpaid": 5000.99
                  },
                  "totalIncomeTaxAndNicsAndCgt": 5000.99
                },
                "chargeableEventGainsIncome": {
                  "totalOfAllGains": 12500,
                  "totalGainsWithTaxPaid": 12500,
                  "gainsWithTaxPaidDetail": [
                    {
                      "type": "life-insurance",
                      "customerReference": "string",
                      "gainAmount": 5000.99,
                      "yearsHeld": 0,
                      "yearsHeldSinceLastGain": 0
                    }
                  ],
                  "totalGainsWithNoTaxPaidAndVoidedIsa": 12500,
                  "gainsWithNoTaxPaidAndVoidedIsaDetail": [
                    {
                      "type": "life-insurance",
                      "customerReference": "string",
                      "gainAmount": 5000.99,
                      "yearsHeld": 0,
                      "yearsHeldSinceLastGain": 0,
                      "voidedIsaTaxPaid": 5000.99
                    }
                  ],
                  "totalForeignGainsOnLifePoliciesTaxPaid": 12500,
                  "foreignGainsOnLifePoliciesTaxPaidDetail": [
                    {
                      "customerReference": "string",
                      "gainAmount": 5000.99,
                      "taxPaidAmount": 5000.99,
                      "yearsHeld": 0
                    }
                  ],
                  "totalForeignGainsOnLifePoliciesNoTaxPaid": 12500,
                  "foreignGainsOnLifePoliciesNoTaxPaidDetail": [
                    {
                      "customerReference": "string",
                      "gainAmount": 5000.99,
                      "yearsHeld": 0
                    }
                  ]
                },
                "transitionProfit": {
                  "totalTaxableTransitionProfit": 2000,
                  "transitionProfitDetail": [
                    {
                      "incomeSourceId": "SAVKB2UVwUTBQGJ",
                      "incomeSourceName": "Savings Account",
                      "transitionProfitAmount": 2000.99,
                      "transitionProfitAccelerationAmount": 2000.99,
                      "totalTransitionProfit": 2000,
                      "remainingBroughtForwardIncomeTaxLosses": 2000,
                      "broughtForwardIncomeTaxLossesUsed": 2000,
                      "transitionProfitsAfterIncomeTaxLossDeductions": 2000
                    }
                  ]
                },
                "studentLoans": [
                  {
                    "planType": "plan1",
                    "studentLoanTotalIncomeAmount": 5000.99,
                    "studentLoanChargeableIncomeAmount": 5000.99,
                    "studentLoanRepaymentAmount": 5000.99,
                    "studentLoanDeductionsFromEmployment": 5000.99,
                    "studentLoanRepaymentAmountNetOfDeductions": 5000.99,
                    "studentLoanApportionedIncomeThreshold": 12500,
                    "studentLoanRate": 20.99,
                    "payeIncomeForStudentLoan": 5000.99,
                    "nonPayeIncomeForStudentLoan": 5000.99
                  }
                ],
                "foreignIncome": {
                  "chargeableOverseasPensionsStateBenefitsRoyalties": 5000.99,
                  "overseasPensionsStateBenefitsRoyaltiesDetail": [
                    {
                      "countryCode": "FRA",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99,
                      "foreignTaxCreditRelief": true
                    }
                  ],
                  "chargeableAllOtherIncomeReceivedWhilstAbroad": 5000.99,
                  "allOtherIncomeReceivedWhilstAbroadDetail": [
                    {
                      "countryCode": "FRA",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99,
                      "foreignTaxCreditRelief": true
                    }
                  ],
                  "overseasIncomeAndGains": {
                    "gainAmount": 5000.99
                  },
                  "totalForeignBenefitsAndGifts": 5000.99,
                  "chargeableForeignBenefitsAndGiftsDetail": {
                    "transactionBenefit": 5000.99,
                    "protectedForeignIncomeSourceBenefit": 5000.99,
                    "protectedForeignIncomeOnwardGift": 5000.99,
                    "benefitReceivedAsASettler": 5000.99,
                    "onwardGiftReceivedAsASettler": 5000.99
                  }
                },
                "royaltyPayments": {
                  "royaltyPaymentsAmount": 12500,
                  "rate": 20.99,
                  "grossRoyaltyPayments": 12500
                },
                "lossesAndClaims": {
                  "resultOfClaimsApplied": [
                    {
                      "claimId": "0vayS9JrW2jTa6n",
                      "originatingClaimId": "0vayS9JrW2jTa6n",
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "taxYearClaimMade": "2017-18",
                      "claimType": "carry-forward",
                      "mtdLoss": false,
                      "taxYearLossIncurred": "2017-18",
                      "lossAmountUsed": 12500,
                      "remainingLossValue": 12500,
                      "lossType": "income"
                    }
                  ],
                  "unclaimedLosses": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "taxYearLossIncurred": "2017-18",
                      "currentLossValue": 12500,
                      "lossType": "income"
                    }
                  ],
                  "carriedForwardLosses": [
                    {
                      "claimId": "0vayS9JrW2jTa6n",
                      "originatingClaimId": "0vayS9JrW2jTa6n",
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "claimType": "carry-forward",
                      "taxYearClaimMade": "2017-18",
                      "taxYearLossIncurred": "2017-18",
                      "currentLossValue": 12500,
                      "lossType": "income"
                    }
                  ],
                  "defaultCarriedForwardLosses": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "taxYearLossIncurred": "2017-18",
                      "currentLossValue": 12500
                    }
                  ],
                  "claimsNotApplied": [
                    {
                      "claimId": "0vayS9JrW2jTa6n",
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "taxYearClaimMade": "2017-18",
                      "claimType": "carry-forward"
                    }
                  ]
                },
                "employmentExpenses": {
                  "totalEmploymentExpenses": 5000.99,
                  "employmentExpensesDetail": {
                    "businessTravelCosts": 5000.99,
                    "jobExpenses": 5000.99,
                    "flatRateJobExpenses": 5000.99,
                    "professionalSubscriptions": 5000.99,
                    "hotelAndMealExpenses": 5000.99,
                    "otherAndCapitalAllowances": 5000.99,
                    "vehicleExpenses": 5000.99,
                    "mileageAllowanceRelief": 5000.99
                  }
                },
                "savingsAndGainsIncome": {
                  "totalChargeableSavingsAndGains": 12500,
                  "totalUkSavingsAndGains": 12500,
                  "ukSavingsAndGainsIncome": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "uk-savings-and-gains",
                      "incomeSourceName": "My Savings Account 1",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99
                    }
                  ],
                  "chargeableForeignSavingsAndGains": 12500,
                  "foreignSavingsAndGainsIncome": [
                    {
                      "incomeSourceType": "foreign-savings-and-gains",
                      "countryCode": "DEU",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99,
                      "foreignTaxCreditRelief": true
                    }
                  ]
                },
                "reliefs": {
                  "residentialFinanceCosts": {
                    "adjustedTotalIncome": 5000.99,
                    "totalAllowableAmount": 5000.99,
                    "relievableAmount": 5000.99,
                    "rate": 20.99,
                    "totalResidentialFinanceCostsRelief": 5000.99,
                    "ukProperty": {
                      "amountClaimed": 12500,
                      "allowableAmount": 5000.99,
                      "carryForwardAmount": 5000.99
                    },
                    "foreignProperty": {
                      "totalForeignPropertyAllowableAmount": 5000.99,
                      "foreignPropertyRfcDetail": [
                        {
                          "countryCode": "FRA",
                          "amountClaimed": 12500,
                          "allowableAmount": 5000.99,
                          "carryForwardAmount": 5000.99
                        }
                      ]
                    },
                    "allOtherIncomeReceivedWhilstAbroad": {
                      "totalOtherIncomeAllowableAmount": 5000.99,
                      "otherIncomeRfcDetail": [
                        {
                          "countryCode": "FRA",
                          "residentialFinancialCostAmount": 5000.99,
                          "broughtFwdResidentialFinancialCostAmount": 5000.99
                        }
                      ]
                    }
                  },
                  "reliefsClaimed": [
                    {
                      "type": "vct-subscriptions",
                      "amountClaimed": 5000.99,
                      "allowableAmount": 5000.99,
                      "amountUsed": 5000.99,
                      "rate": 20.99,
                      "reliefsClaimedDetail": [
                        {
                          "amountClaimed": 5000.99,
                          "uniqueInvestmentRef": "string",
                          "name": "string",
                          "companyName": "string",
                          "deficiencyReliefType": "life-insurance",
                          "customerReference": "string"
                        }
                      ]
                    }
                  ],
                  "foreignTaxCreditRelief": {
                    "customerCalculatedRelief": true,
                    "totalForeignTaxCreditRelief": 5000.99,
                    "foreignTaxCreditReliefOnProperty": 5000.99,
                    "foreignTaxCreditReliefOnDividends": 5000.99,
                    "foreignTaxCreditReliefOnSavings": 5000.99,
                    "foreignTaxCreditReliefOnForeignIncome": 5000.99,
                    "foreignTaxCreditReliefDetail": [
                      {
                        "incomeSourceType": "foreign-property",
                        "incomeSourceId": "000000000000210",
                        "countryCode": "FRA",
                        "foreignIncome": 5000.99,
                        "foreignTax": 5000.99,
                        "dtaRate": 20.99,
                        "dtaAmount": 5000.99,
                        "ukLiabilityOnIncome": 5000.99,
                        "foreignTaxCredit": 5000.99,
                        "employmentLumpSum": true
                      }
                    ]
                  },
                  "topSlicingRelief": {
                    "amount": 5000.99
                  },
                  "basicRateExtension": {
                    "totalBasicRateExtension": 5000.99,
                    "giftAidRelief": 3000,
                    "pensionContributionReliefs": 5000.58
                  },
                  "giftAidTaxReductionWhereBasicRateDiffers": {
                    "amount": 5000.99
                  }
                },
                "highIncomeChildBenefitCharge": {
                  "adjustedNetIncome": 2000.01,
                  "amountOfChildBenefitReceived": 2000.01,
                  "incomeThreshold": 60000,
                  "childBenefitChargeTaper": 200,
                  "rate": 10.25,
                  "highIncomeBenefitCharge": 32000.01
                },
                "stateBenefitsIncome": {
                  "totalStateBenefitsIncome": 5000.99,
                  "totalStateBenefitsTaxPaid": -99999999999.99,
                  "stateBenefitsDetail": {
                    "incapacityBenefit": [
                      {
                        "incomeSourceId": "8d52ce90-44d7-4f54-a852-c3649c032ad2",
                        "amount": 5000.99,
                        "taxPaid": 5000.99,
                        "source": "customer"
                      }
                    ],
                    "statePension": [
                      {
                        "incomeSourceId": "b3c35b58-f922-45f2-b9ce-bf5d8d02ae1d",
                        "amount": 5000.99,
                        "source": "customer"
                      }
                    ],
                    "statePensionLumpSum": [
                      {
                        "incomeSourceId": "98c46e27-5a68-424b-9529-08a955ebed14",
                        "amount": 5000.99,
                        "taxPaid": 5000.99,
                        "rate": 20.99,
                        "source": "customer"
                      }
                    ],
                    "employmentSupportAllowance": [
                      {
                        "incomeSourceId": "5d8c1388-2fe6-4383-9dbb-714c5691fa0d",
                        "amount": 5000.99,
                        "taxPaid": -99999999999.99,
                        "source": "customer"
                      }
                    ],
                    "jobSeekersAllowance": [
                      {
                        "incomeSourceId": "1d6e0bed-9515-4a53-8b8f-f64602511a79",
                        "amount": 5000.99,
                        "taxPaid": -99999999999.99,
                        "source": "customer"
                      }
                    ],
                    "bereavementAllowance": [
                      {
                        "incomeSourceId": "fee9c698-4920-4aed-9d34-482b7de4765f",
                        "amount": 5000.99,
                        "source": "customer"
                      }
                    ],
                    "otherStateBenefits": [
                      {
                        "incomeSourceId": "69e598f6-7f99-40d6-998f-bfca16c20d12",
                        "amount": 5000.99,
                        "source": "customer"
                      }
                    ]
                  },
                  "totalStateBenefitsIncomeExcStatePensionLumpSum": 5000.99
                },
                "incomeSummaryTotals": {
                  "totalSelfEmploymentProfit": 12500,
                  "totalPropertyProfit": 12500,
                  "totalUKOtherPropertyProfit": 12500,
                  "totalForeignPropertyProfit": 12500,
                  "totalEmploymentIncome": 12500
                },
                "employmentAndPensionsIncome": {
                  "totalPayeEmploymentAndLumpSumIncome": 5000.99,
                  "totalOccupationalPensionIncome": 5000.99,
                  "totalBenefitsInKind": 5000.99,
                  "tipsIncome": 5000.99,
                  "employmentAndPensionsIncomeDetail": [
                    {
                      "incomeSourceId": "07cedb23-ecdf-4bce-919b-e4be46a98704",
                      "source": "customer",
                      "occupationalPension": true,
                      "employerRef": "123/AA12345",
                      "employerName": "string",
                      "offPayrollWorker": true,
                      "payrollId": "YDIAHPcYFQbOXLCKQ",
                      "startDate": "2021-12-02",
                      "dateEmploymentEnded": "2021-12-02",
                      "taxablePayToDate": 5000.99,
                      "totalTaxToDate": -99999999999.99,
                      "disguisedRemuneration": true,
                      "lumpSums": {
                        "totalLumpSum": 5000.99,
                        "totalTaxPaid": 5000.99,
                        "lumpSumsDetail": {
                          "taxableLumpSumsAndCertainIncome": {
                            "amount": 5000.99,
                            "taxPaid": 5000.99,
                            "taxTakenOffInEmployment": true
                          },
                          "benefitFromEmployerFinancedRetirementScheme": {
                            "amount": 5000.99,
                            "exemptAmount": 5000.99,
                            "taxPaid": 5000.99,
                            "taxTakenOffInEmployment": true
                          },
                          "redundancyCompensationPaymentsOverExemption": {
                            "amount": 5000.99,
                            "taxPaid": 5000.99,
                            "taxTakenOffInEmployment": true
                          },
                          "redundancyCompensationPaymentsUnderExemption": {
                            "amount": 5000.99
                          }
                        }
                      },
                      "studentLoans": {
                        "uglDeductionAmount": 5000.99,
                        "pglDeductionAmount": 5000.99
                      },
                      "benefitsInKind": {
                        "totalBenefitsInKindReceived": 5000.99,
                        "benefitsInKindDetail": {
                          "apportionedVanFuel": 5000.99,
                          "apportionedIncomeTaxPaidByDirector": 5000.99,
                          "apportionedNonQualifyingRelocationExpenses": 5000.99,
                          "apportionedEmployerProvidedProfessionalSubscriptions": 5000.99,
                          "apportionedCar": 5000.99,
                          "apportionedNonCash": 5000.99,
                          "apportionedMedicalInsurance": 5000.99,
                          "apportionedEducationalServices": 5000.99,
                          "apportionedTaxableExpenses": 5000.99,
                          "apportionedExpenses": 5000.99,
                          "apportionedBeneficialLoan": 5000.99,
                          "apportionedOtherItems": 5000.99,
                          "apportionedVan": 5000.99,
                          "apportionedVouchersAndCreditCards": 5000.99,
                          "apportionedAccommodation": 5000.99,
                          "apportionedEmployerProvidedServices": 5000.99,
                          "apportionedNurseryPlaces": 5000.99,
                          "apportionedEntertaining": 5000.99,
                          "apportionedPersonalIncidentalExpenses": 5000.99,
                          "apportionedTravelAndSubsistence": 5000.99,
                          "apportionedTelephone": 5000.99,
                          "apportionedAssetTransfer": 5000.99,
                          "apportionedCarFuel": 5000.99,
                          "apportionedPaymentsOnEmployeesBehalf": 5000.99,
                          "apportionedService": 5000.99,
                          "apportionedMileage": 5000.99,
                          "apportionedQualifyingRelocationExpenses": 5000.99,
                          "apportionedAssets": 5000.99
                        }
                      }
                    }
                  ]
                },
                "foreignTaxForFtcrNotClaimed": {
                  "foreignTaxOnForeignEmployment": 5000.99
                },
                "marriageAllowanceTransferredIn": {
                  "amount": 5000.99,
                  "rate": 20.99
                },
                "pensionContributionReliefs": {
                  "totalPensionContributionReliefs": 5000.99,
                  "pensionContributionDetail": {
                    "regularPensionContributions": 5000.99,
                    "oneOffPensionContributionsPaid": 5000.99
                  }
                },
                "seafarersDeductions": {
                  "totalSeafarersDeduction": 5000.99,
                  "seafarersDeductionDetail": [
                    {
                      "nameOfShip": "string",
                      "amountDeducted": 5000.99
                    }
                  ]
                },
                "allowancesAndDeductions": {
                  "personalAllowance": 12500,
                  "marriageAllowanceTransferOut": {
                    "personalAllowanceBeforeTransferOut": 5000.99,
                    "transferredOutAmount": 5000.99
                  },
                  "reducedPersonalAllowance": 12500,
                  "giftOfInvestmentsAndPropertyToCharity": 12500,
                  "blindPersonsAllowance": 12500,
                  "lossesAppliedToGeneralIncome": 12500,
                  "cgtLossSetAgainstInYearGeneralIncome": 12500,
                  "qualifyingLoanInterestFromInvestments": 5000.99,
                  "postCessationTradeReceipts": 5000.99,
                  "paymentsToTradeUnionsForDeathBenefits": 5000.99,
                  "grossAnnuityPayments": 5000.99,
                  "annuityPayments": {
                    "reliefClaimed": 5000.99,
                    "rate": 20.99
                  },
                  "pensionContributions": 5000.99,
                  "pensionContributionsDetail": {
                    "retirementAnnuityPayments": 5000.99,
                    "paymentToEmployersSchemeNoTaxRelief": 5000.99,
                    "overseasPensionSchemeContributions": 5000.99
                  }
                },
                "pensionSavingsTaxCharges": {
                  "totalPensionCharges": 5000.99,
                  "totalTaxPaid": 5000.99,
                  "totalPensionChargesDue": 5000.99,
                  "pensionSavingsTaxChargesDetail": {
                    "pensionSchemeUnauthorisedPayments": {
                      "totalChargeableAmount": 5000.99,
                      "totalTaxPaid": 5000.99,
                      "pensionSchemeUnauthorisedPaymentsSurcharge": {
                        "amount": 5000.99,
                        "taxPaid": 5000.99,
                        "rate": 20.99,
                        "chargeableAmount": 5000.99
                      },
                      "pensionSchemeUnauthorisedPaymentsNonSurcharge": {
                        "amount": 5000.99,
                        "taxPaid": 5000.99,
                        "rate": 20.99,
                        "chargeableAmount": 5000.99
                      }
                    },
                    "pensionSchemeOverseasTransfers": {
                      "transferCharge": 5000.99,
                      "transferChargeTaxPaid": 5000.99,
                      "rate": 20.99,
                      "chargeableAmount": 5000.99
                    },
                    "pensionContributionsInExcessOfTheAnnualAllowance": {
                      "totalContributions": 5000.99,
                      "totalPensionCharge": 5000.99,
                      "annualAllowanceTaxPaid": 5000.99,
                      "totalPensionChargeDue": 5000.99,
                      "pensionBands": [
                        {
                          "name": "basic-rate",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "contributionAmount": 5000.99,
                          "pensionCharge": 5000.99
                        }
                      ]
                    },
                    "overseasPensionContributions": {
                      "totalShortServiceRefund": 5000.99,
                      "totalShortServiceRefundCharge": 5000.99,
                      "shortServiceRefundTaxPaid": 5000.99,
                      "totalShortServiceRefundChargeDue": 5000.99,
                      "shortServiceRefundBands": [
                        {
                          "name": "lower-band",
                          "rate": 20.99,
                          "bandLimit": 12500,
                          "apportionedBandLimit": 12500,
                          "shortServiceRefundAmount": 5000.99,
                          "shortServiceRefundCharge": 5000.99
                        }
                      ]
                    }
                  }
                },
                "giftAid": {
                  "grossGiftAidPayments": 12500,
                  "rate": 20.99,
                  "giftAidTax": 5000.99,
                  "giftAidTaxReductions": 5000.99,
                  "incomeTaxChargedAfterGiftAidTaxReductions": 5000.99,
                  "giftAidCharge": 5000.99
                },
                "previousCalculation": {
                  "calculationTimestamp": "2021-12-02T15:25:48.475Z",
                  "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
                  "totalIncomeTaxAndNicsDue": -99999999999.99,
                  "cgtTaxDue": 5000.99,
                  "totalIncomeTaxAndNicsAndCgtDue": 5000.99,
                  "incomeTaxNicDueThisPeriod": -99999999999.99,
                  "cgtDueThisPeriod": -99999999999.99,
                  "totalIncomeTaxAndNicsAndCgtDueThisPeriod": 5000.99
                },
                "otherIncome": {
                  "totalOtherIncome": 2000,
                  "postCessationIncome": {
                    "totalPostCessationReceipts": 2000,
                    "postCessationReceipts": [
                      {
                        "amount": 100,
                        "taxYearIncomeToBeTaxed": "2019-20"
                      }
                    ]
                  }
                },
                "shareSchemesIncome": {
                  "totalIncome": 5000.99,
                  "shareSchemeDetail": [
                    {
                      "type": "share-option",
                      "employerName": "string",
                      "employerRef": "123/AA12345",
                      "taxableAmount": 5000.99
                    }
                  ]
                },
                "taxDeductedAtSource": {
                  "bbsi": 5000.99,
                  "ukLandAndProperty": 5000.99,
                  "cis": 5000.99,
                  "securities": 5000.99,
                  "voidedIsa": 5000.99,
                  "payeEmployments": 5000.99,
                  "occupationalPensions": 5000.99,
                  "stateBenefits": -99999999999.99,
                  "specialWithholdingTaxOrUkTaxPaid": 5000.99,
                  "inYearAdjustmentCodedInLaterTaxYear": 5000.99,
                  "taxTakenOffTradingIncome": 5000.99
                },
                "endOfYearEstimate": {
                  "incomeSource": [
                    {
                      "incomeSourceId": "000000000000210",
                      "incomeSourceType": "self-employment",
                      "incomeSourceName": "string",
                      "taxableIncome": 12500
                    }
                  ],
                  "totalEstimatedIncome": 12500,
                  "totalAllowancesAndDeductions": 5311,
                  "totalTaxableIncome": 12500,
                  "incomeTaxAmount": 5000.99,
                  "nic2": 5000.99,
                  "nic4": 5000.99,
                  "totalTaxDeductedBeforeCodingOut": 5000.99,
                  "saUnderpaymentsCodedOut": 5000.99,
                  "totalNicAmount": 5000.99,
                  "totalStudentLoansRepaymentAmount": 5000.99,
                  "totalAnnuityPaymentsTaxCharged": 5000.99,
                  "totalRoyaltyPaymentsTaxCharged": 5000.99,
                  "totalTaxDeducted": -99999999999.99,
                  "incomeTaxNicAmount": -99999999999.99,
                  "cgtAmount": 5000.99,
                  "incomeTaxNicAndCgtAmount": 5000.99
                },
                "foreignPropertyIncome": [
                  {
                    "incomeSourceId": "000000000000210",
                    "incomeSourceType": "foreign-property",
                    "countryCode": "FRA",
                    "totalIncome": 5000.99,
                    "totalExpenses": 5000.99,
                    "netProfit": 5000.99,
                    "netLoss": 5000.99,
                    "totalAdditions": 5000.99,
                    "totalDeductions": 5000.99,
                    "taxableProfit": 5000.99,
                    "adjustedIncomeTaxLoss": 5000.99
                  }
                ],
                "notionalTax": {
                  "chargeableGains": 5000.99
                },
                "codedOutUnderpayments": {
                  "totalPayeUnderpayments": 5000.99,
                  "payeUnderpaymentsDetail": [
                    {
                      "amount": 5000.99,
                      "relatedTaxYear": "2019-20",
                      "source": "customer"
                    }
                  ],
                  "totalSelfAssessmentUnderpayments": 5000.99,
                  "totalCollectedSelfAssessmentUnderpayments": 5000.99,
                  "totalUncollectedSelfAssessmentUnderpayments": 5000.99,
                  "selfAssessmentUnderpaymentsDetail": [
                    {
                      "amount": 5000.99,
                      "relatedTaxYear": "2019-20",
                      "source": "customer",
                      "collectedAmount": 5000.99,
                      "uncollectedAmount": 5000.99
                    }
                  ]
                },
                "dividendsIncome": {
                  "totalChargeableDividends": 12500,
                  "totalUkDividends": 12500,
                  "ukDividends": {
                    "incomeSourceId": "000000000000210",
                    "incomeSourceType": "uk-dividends",
                    "dividends": 12500,
                    "otherUkDividends": 12500
                  },
                  "otherDividends": [
                    {
                      "typeOfDividend": "stock-dividend",
                      "customerReference": "string",
                      "grossAmount": 5000.99
                    }
                  ],
                  "chargeableForeignDividends": 12500,
                  "foreignDividends": [
                    {
                      "incomeSourceType": "foreign-dividends",
                      "countryCode": "ZZZ",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99,
                      "foreignTaxCreditRelief": true
                    }
                  ],
                  "dividendIncomeReceivedWhilstAbroad": [
                    {
                      "incomeSourceType": "foreign-dividends",
                      "countryCode": "ZZZ",
                      "grossIncome": 5000.99,
                      "netIncome": 5000.99,
                      "taxDeducted": 5000.99,
                      "foreignTaxCreditRelief": true
                    }
                  ]
                },
                "businessProfitAndLoss": [
                  {
                    "broughtForwardClass4LossesUsed": 12500,
                    "incomeSourceType": "self-employment",
                    "totalIncome": 5000.99,
                    "netProfit": 5000.99,
                    "netLoss": 5000.99,
                    "totalIncomeTaxLossesCarriedForward": 12500,
                    "totalClass4LossesCarriedForward": 12500,
                    "incomeSourceName": "string",
                    "totalExpenses": -99999999999.99,
                    "totalAdditions": -99999999999.99,
                    "taxableProfit": 12500,
                    "totalBroughtForwardIncomeTaxLosses": 12500,
                    "adjustedIncomeTaxLoss": 12500,
                    "adjustedProfit": 5000.99,
                    "carrySidewaysIncomeTaxLossesUsed": 12500,
                    "class4Loss": 12500,
                    "carrySidewaysClass4LossesUsed": 12500,
                    "broughtForwardCarrySidewaysIncomeTaxLossesUsed": 12500,
                    "broughtForwardIncomeTaxLossesUsed": 12500,
                    "outstandingBusinessIncome": 5000.99,
                    "incomeSourceId": "000000000000210",
                    "totalDeductions": 5000.99,
                    "taxableProfitAfterIncomeTaxLossesDeduction": 12500,
                    "totalBroughtForwardClass4Losses": 12500,
                    "accountingAdjustments": -99999999999.99
                  }
                ]
              },
              "messages": {
                "info": [
                  {
                    "id": "C22201",
                    "text": "Your BRT limit has been increased by 6375 to 40875 for Gift Aid payments."
                  }
                ],
                "warnings": [
                  {
                    "id": "C11009",
                    "text": "Period submissions include gaps"
                  }
                ],
                "errors": [
                  {
                    "id": "C95005",
                    "text": "Final confirmation of income and expenses for all business sources has not been provided"
                  }
                ]
              }
            }
          ]
        },
        "details": {
          "message": "Tax calculation retrieved from HMRC.",
          "correlationId": "552dc2fa-ff2c-46c3-91a3-7b819d3451b0"
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 190
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/{calculationId}/final-declaration submits the final declaration",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:55.731539Z",
      "durationMs": 365,
      "steps": [
        {
          "message": "Final declaration returned worker status 200.",
          "passed": true
        },
        {
          "message": "Final declaration used calculationId f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb884ec04afb",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "SubmitFinalDeclaration",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/{calculationId}/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "5e5ed7a5-2538-4bad-a392-f8042c5d238a",
              "payload": {}
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {}
          ]
        },
        "details": {
          "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
          "message": "Final declaration submitted to HMRC.",
          "statusCode": 200,
          "hmrcStatusCode": 204,
          "correlationId": "5e5ed7a5-2538-4bad-a392-f8042c5d238a"
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 252
        }
      }
    },
    {
      "name": "Multiple Businesses | Business Details API GET /hmrc/identity returns all seeded businesses",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:56.097384Z",
      "durationMs": 280,
      "steps": [
        {
          "message": "Harness-seeded identity read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "HMRC identity returned 2 business(es); all 2 seeded business(es) matched.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=STATEFUL",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb8aa83deb14",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "e39e5f90-2a02-4177-ac73-5183e3f2e84c",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "X1IS73403316474",
                    "tradingName": "Harbour Music Lessons"
                  },
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "X4IS27198436836",
                    "tradingName": "Pilates Studio"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "X1IS73403316474",
                  "businessName": "Harbour Music Lessons"
                },
                {
                  "businessId": "X4IS27198436836",
                  "businessName": "Pilates Studio"
                }
              ]
            }
          ]
        },
        "details": {
          "businessCount": 2,
          "seededBusinessCount": 2,
          "matchedSeededCount": 2,
          "allSeededBusinessesMatched": true,
          "seededBusinessReadBackValidated": true,
          "identityReadBackAttempts": 1,
          "identityReadBackUsedStatefulScenario": true,
          "seededBusinessIdentityLagAccepted": false,
          "seededBusinessProofLimitedByStub": false
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 149
        }
      }
    },
    {
      "name": "Multiple Businesses | Obligations API GET /hmrc/obligations returns open quarterly obligations",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:49:56.381150Z",
      "durationMs": 1,
      "steps": [
        {
          "message": "HMRC Obligations API is non-stateful in the sandbox. The Individual API Tests below still prove the endpoint can be called, but 8 open quarterly obligation(s) across 2 business(es) are saved from the harness seed response and reused later for quarterly submissions.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC Obligations API is non-stateful in the sandbox. The Individual API Tests below still prove the endpoint can be called, but 8 open quarterly obligation(s) across 2 business(es) are saved from the harness seed response and reused later for quarterly submissions."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Multiple Businesses | Obligations API GET /hmrc/obligations/final-declaration returns open final declaration obligations",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:49:56.383475Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "HMRC Obligations API is non-stateful in the sandbox. The Individual API Tests below still prove the endpoint can be called, but final declaration obligation checks across 2 business(es) are saved from the harness seed response and reused later for final annual submissions.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC Obligations API is non-stateful in the sandbox. The Individual API Tests below still prove the endpoint can be called, but final declaration obligation checks across 2 business(es) are saved from the harness seed response and reused later for final annual submissions."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Multiple Businesses | Business A | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q1 quarterly update",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:49:56.384848Z",
      "durationMs": 481,
      "steps": [
        {
          "message": "Scenario failed: HmrcWorkerException(404): {\n  \"error\": \"Failed to retrieve cumulative summary.\",\n  \"hmrcStatus\": 404,\n  \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n  \"body\": {\n    \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n    \"message\": \"Matching resource not found\"\n  },\n  \"hmrcApi\": {\n    \"apiName\": \"SelfEmployment\",\n    \"operation\": \"GetCumulativePeriodSummary\",\n    \"method\": \"GET\",\n    \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n    \"version\": \"5.0\",\n    \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n    \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n    \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n  },\n  \"request\": {\n    \"method\": \"GET\",\n    \"url\": \"https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL\",\n    \"path\": \"/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n    \"queryParameters\": {\n      \"gov-test-scenario\": \"STATEFUL\"\n    },\n    \"headers\": {\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, br\",\n      \"authorization\": \"Bearer eyJhbGciOiJ...K8\",\n      \"cf-connecting-ip\": \"209.x.x.x\",\n      \"cf-ipcountry\": \"GB\",\n      \"cf-ray\": \"9f2ceb8d5df25395\",\n      \"cf-visitor\": \"{\\\"scheme\\\":\\\"https\\\"}\",\n      \"connection\": \"Keep-Alive\",\n      \"host\": \"playpay-mtd-auth-worker-dev.playpay.workers.dev\",\n      \"user-agent\": \"Dart/3.9 (dart:io)\",\n      \"x-forwarded-proto\": \"https\",\n      \"x-playpay-trace\": \"1\",\n      \"x-real-ip\": \"209.x.x.x\"\n    }\n  },\n  \"apiRequests\": [\n    {\n      \"relayed-request\": {\n        \"method\": \"GET\",\n        \"url\": \"https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n        \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n        \"headers\": {\n          \"authorization\": \"Bearer 403be4fa2d5...c3\",\n          \"accept\": \"application/vnd.hmrc.5.0+json\",\n          \"gov-client-connection-method\": \"MOBILE_APP_DIRECT\",\n          \"gov-client-device-id\": \"playpay-bdd...ce\",\n          \"gov-client-timezone\": \"UTC+00:00\",\n          \"gov-client-user-ids\": \"os=playpay-bdd-smoke\",\n          \"gov-uk-originator-id\": \"playpay-bdd...ke\",\n          \"gov-vendor-forwarded\": \"by=203.x.x.x&for=198.x.x.x\",\n          \"gov-vendor-license-ids\": \"playpay=hmrc-bdd-smoke-license\",\n          \"gov-vendor-product-name\": \"PlayPay\",\n          \"gov-vendor-public-ip\": \"198.x.x.x\",\n          \"gov-vendor-version\": \"playpay=hmrc-bdd-smoke-1\",\n          \"Gov-Test-Scenario\": \"STATEFUL\"\n        },\n        \"hmrcApi\": {\n          \"apiName\": \"SelfEmployment\",\n          \"operation\": \"GetCumulativePeriodSummary\",\n          \"method\": \"GET\",\n          \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n          \"version\": \"5.0\",\n          \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n          \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n          \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n        }\n      },\n      \"hmrc-response\": {\n        \"status\": 404,\n        \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n        \"payload\": {\n          \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n          \"message\": \"Matching resource not found\"\n        }\n      }\n    }\n  ],\n  \"response\": {\n    \"status\": 404,\n    \"payload\": {\n      \"error\": \"Failed to retrieve cumulative summary.\",\n      \"hmrcStatus\": 404,\n      \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n      \"body\": {\n        \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n        \"message\": \"Matching resource not found\"\n      },\n      \"hmrcApi\": {\n        \"apiName\": \"SelfEmployment\",\n        \"operation\": \"GetCumulativePeriodSummary\",\n        \"method\": \"GET\",\n        \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n        \"version\": \"5.0\",\n        \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n        \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n        \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n      }\n    }\n  }\n}",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb8d5df25395",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "54ec5eda-3c1f-44e8-a7b4-39b287f7b56d",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 404,
          "payload": [
            {
              "error": "Failed to retrieve cumulative summary.",
              "hmrcStatus": 404,
              "correlationId": "54ec5eda-3c1f-44e8-a7b4-39b287f7b56d",
              "body": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          ]
        },
        "details": {
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              },
              "request": {
                "method": "GET",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL",
                "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                "queryParameters": {
                  "gov-test-scenario": "STATEFUL"
                },
                "headers": {
                  "accept": "application/json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2ceb8d5df25395",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "GET",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.5.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "STATEFUL"
                    },
                    "hmrcApi": {
                      "apiName": "SelfEmployment",
                      "operation": "GetCumulativePeriodSummary",
                      "method": "GET",
                      "acceptHeader": "application/vnd.hmrc.5.0+json",
                      "version": "5.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                      "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                      "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "SelfEmployment",
                    "operation": "GetCumulativePeriodSummary",
                    "method": "GET",
                    "acceptHeader": "application/vnd.hmrc.5.0+json",
                    "version": "5.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                    "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "failed",
          "http": 404,
          "durationMs": 210
        }
      },
      "error": "HmrcWorkerException(404): {\n  \"error\": \"Failed to retrieve cumulative summary.\",\n  \"hmrcStatus\": 404,\n  \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n  \"body\": {\n    \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n    \"message\": \"Matching resource not found\"\n  },\n  \"hmrcApi\": {\n    \"apiName\": \"SelfEmployment\",\n    \"operation\": \"GetCumulativePeriodSummary\",\n    \"method\": \"GET\",\n    \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n    \"version\": \"5.0\",\n    \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n    \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n    \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n  },\n  \"request\": {\n    \"method\": \"GET\",\n    \"url\": \"https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL\",\n    \"path\": \"/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n    \"queryParameters\": {\n      \"gov-test-scenario\": \"STATEFUL\"\n    },\n    \"headers\": {\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, br\",\n      \"authorization\": \"Bearer eyJhbGciOiJ...K8\",\n      \"cf-connecting-ip\": \"209.x.x.x\",\n      \"cf-ipcountry\": \"GB\",\n      \"cf-ray\": \"9f2ceb8d5df25395\",\n      \"cf-visitor\": \"{\\\"scheme\\\":\\\"https\\\"}\",\n      \"connection\": \"Keep-Alive\",\n      \"host\": \"playpay-mtd-auth-worker-dev.playpay.workers.dev\",\n      \"user-agent\": \"Dart/3.9 (dart:io)\",\n      \"x-forwarded-proto\": \"https\",\n      \"x-playpay-trace\": \"1\",\n      \"x-real-ip\": \"209.x.x.x\"\n    }\n  },\n  \"apiRequests\": [\n    {\n      \"relayed-request\": {\n        \"method\": \"GET\",\n        \"url\": \"https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n        \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\",\n        \"headers\": {\n          \"authorization\": \"Bearer 403be4fa2d5...c3\",\n          \"accept\": \"application/vnd.hmrc.5.0+json\",\n          \"gov-client-connection-method\": \"MOBILE_APP_DIRECT\",\n          \"gov-client-device-id\": \"playpay-bdd...ce\",\n          \"gov-client-timezone\": \"UTC+00:00\",\n          \"gov-client-user-ids\": \"os=playpay-bdd-smoke\",\n          \"gov-uk-originator-id\": \"playpay-bdd...ke\",\n          \"gov-vendor-forwarded\": \"by=203.x.x.x&for=198.x.x.x\",\n          \"gov-vendor-license-ids\": \"playpay=hmrc-bdd-smoke-license\",\n          \"gov-vendor-product-name\": \"PlayPay\",\n          \"gov-vendor-public-ip\": \"198.x.x.x\",\n          \"gov-vendor-version\": \"playpay=hmrc-bdd-smoke-1\",\n          \"Gov-Test-Scenario\": \"STATEFUL\"\n        },\n        \"hmrcApi\": {\n          \"apiName\": \"SelfEmployment\",\n          \"operation\": \"GetCumulativePeriodSummary\",\n          \"method\": \"GET\",\n          \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n          \"version\": \"5.0\",\n          \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n          \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n          \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n        }\n      },\n      \"hmrc-response\": {\n        \"status\": 404,\n        \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n        \"payload\": {\n          \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n          \"message\": \"Matching resource not found\"\n        }\n      }\n    }\n  ],\n  \"response\": {\n    \"status\": 404,\n    \"payload\": {\n      \"error\": \"Failed to retrieve cumulative summary.\",\n      \"hmrcStatus\": 404,\n      \"correlationId\": \"54ec5eda-3c1f-44e8-a7b4-39b287f7b56d\",\n      \"body\": {\n        \"code\": \"MATCHING_RESOURCE_NOT_FOUND\",\n        \"message\": \"Matching resource not found\"\n      },\n      \"hmrcApi\": {\n        \"apiName\": \"SelfEmployment\",\n        \"operation\": \"GetCumulativePeriodSummary\",\n        \"method\": \"GET\",\n        \"acceptHeader\": \"application/vnd.hmrc.5.0+json\",\n        \"version\": \"5.0\",\n        \"documentationUrl\": \"https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0\",\n        \"pathTemplate\": \"/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}\",\n        \"path\": \"/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26\"\n      }\n    }\n  }\n}"
    },
    {
      "name": "Multiple Businesses | Business A | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q2 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:56.873214Z",
      "durationMs": 720,
      "steps": [
        {
          "message": "Business A Q2 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business A Q2 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business A Q2 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb91eb4ea14b",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-10-05"
                },
                "periodIncome": {
                  "turnover": 3975.5,
                  "other": 45,
                  "taxTakenOffTradingIncome": 0
                },
                "periodExpenses": {
                  "adminCosts": 332.4
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 18.75
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "88734716-29d7-49bb-8e80-480c2ba2a2ae",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "407b4d0d-bb90-46f4-b7a3-1e5057e99ea8",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-10-05"
                },
                "periodIncome": {
                  "turnover": 3975.5,
                  "other": 45,
                  "taxTakenOffTradingIncome": 0
                },
                "periodExpenses": {
                  "adminCosts": 332.4
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 18.75
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2025-10-05"
              },
              "periodIncome": {
                "turnover": 3975.5,
                "other": 45,
                "taxTakenOffTradingIncome": 0
              },
              "periodExpenses": {
                "adminCosts": 332.4
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 18.75
              }
            }
          ]
        },
        "details": {
          "business": "A",
          "businessId": "X4IS27198436836",
          "quarter": "Q2",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "88734716-29d7-49bb-8e80-480c2ba2a2ae",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2025-10-05T00:00:00.000Z",
            "periodKey": "Q2"
          },
          "submissionPayload": {
            "periodIncome": {
              "other": 45.0,
              "taxTakenOffTradingIncome": 0.0
            }
          },
          "verification": {
            "subject": "Business A Q2 cumulative summary",
            "verified": true,
            "expectedPayload": {
              "periodIncome": {
                "other": 45.0,
                "taxTakenOffTradingIncome": 0.0
              }
            }
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 208
        }
      }
    },
    {
      "name": "Multiple Businesses | Business A | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q3 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:57.595161Z",
      "durationMs": 720,
      "steps": [
        {
          "message": "Business A Q3 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business A Q3 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business A Q3 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb96befdeb18",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-01-05"
                },
                "periodIncome": {
                  "turnover": 6420.75,
                  "other": 92.5,
                  "taxTakenOffTradingIncome": 21.1
                },
                "periodExpenses": {
                  "adminCosts": 517.9
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 30.25
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "c218b5ca-1987-4ec6-887e-ed3be7850fd2",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "96afc568-0503-4ab5-8d3b-f5921838c45e",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-01-05"
                },
                "periodIncome": {
                  "turnover": 6420.75,
                  "other": 92.5,
                  "taxTakenOffTradingIncome": 21.1
                },
                "periodExpenses": {
                  "adminCosts": 517.9
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 30.25
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2026-01-05"
              },
              "periodIncome": {
                "turnover": 6420.75,
                "other": 92.5,
                "taxTakenOffTradingIncome": 21.1
              },
              "periodExpenses": {
                "adminCosts": 517.9
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 30.25
              }
            }
          ]
        },
        "details": {
          "business": "A",
          "businessId": "X4IS27198436836",
          "quarter": "Q3",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "c218b5ca-1987-4ec6-887e-ed3be7850fd2",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-01-05T00:00:00.000Z",
            "periodKey": "Q3"
          },
          "verification": {
            "subject": "Business A Q3 cumulative summary",
            "verified": true
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 159
        }
      }
    },
    {
      "name": "Multiple Businesses | Business A | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q4 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:58.318859Z",
      "durationMs": 873,
      "steps": [
        {
          "message": "Business A Q4 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business A Q4 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business A Q4 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceb9c3c072196",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-04-05"
                },
                "periodIncome": {
                  "turnover": 9088,
                  "other": 130,
                  "taxTakenOffTradingIncome": 37.65
                },
                "periodExpenses": {
                  "adminCosts": 748.2
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 45
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "1fea0463-0634-42a3-b416-7b53485303bc",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "3eebf896-5049-4d59-ab18-22c63b2676f4",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-04-05"
                },
                "periodIncome": {
                  "turnover": 9088,
                  "other": 130,
                  "taxTakenOffTradingIncome": 37.65
                },
                "periodExpenses": {
                  "adminCosts": 748.2
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 45
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2026-04-05"
              },
              "periodIncome": {
                "turnover": 9088,
                "other": 130,
                "taxTakenOffTradingIncome": 37.65
              },
              "periodExpenses": {
                "adminCosts": 748.2
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 45
              }
            }
          ]
        },
        "details": {
          "business": "A",
          "businessId": "X4IS27198436836",
          "quarter": "Q4",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "1fea0463-0634-42a3-b416-7b53485303bc",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-04-05T00:00:00.000Z",
            "periodKey": "Q4"
          },
          "submissionPayload": {
            "periodIncome": {
              "turnover": 9088.0,
              "other": 130.0
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 45.0
            }
          },
          "verification": {
            "subject": "Business A Q4 cumulative summary",
            "verified": true,
            "expectedPayload": {
              "periodIncome": {
                "turnover": 9088.0,
                "other": 130.0
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 45.0
              }
            }
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 157
        }
      }
    },
    {
      "name": "Multiple Businesses | Business B | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q1 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:59.194517Z",
      "durationMs": 723,
      "steps": [
        {
          "message": "Business B Q1 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business B Q1 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business B Q1 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceba07cc43607",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-07-05"
                },
                "periodIncome": {
                  "turnover": 2465.65,
                  "other": 18.75,
                  "taxTakenOffTradingIncome": 0
                },
                "periodExpenses": {
                  "adminCosts": 204.4
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 15.7
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "af1e976e-6687-4629-95c1-cff2d7410419",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "b732756f-5924-4a7b-849e-a7950cbdfd20",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-07-05"
                },
                "periodIncome": {
                  "turnover": 2465.65,
                  "other": 18.75,
                  "taxTakenOffTradingIncome": 0
                },
                "periodExpenses": {
                  "adminCosts": 204.4
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 15.7
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2025-07-05"
              },
              "periodIncome": {
                "turnover": 2465.65,
                "other": 18.75,
                "taxTakenOffTradingIncome": 0
              },
              "periodExpenses": {
                "adminCosts": 204.4
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 15.7
              }
            }
          ]
        },
        "details": {
          "business": "B",
          "businessId": "X1IS73403316474",
          "quarter": "Q1",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "af1e976e-6687-4629-95c1-cff2d7410419",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2025-07-05T00:00:00.000Z",
            "periodKey": "Q1"
          },
          "submissionPayload": {
            "periodIncome": {
              "taxTakenOffTradingIncome": 0.0
            }
          },
          "verification": {
            "subject": "Business B Q1 cumulative summary",
            "verified": true,
            "expectedPayload": {
              "periodIncome": {
                "taxTakenOffTradingIncome": 0.0
              }
            }
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 203
        }
      }
    },
    {
      "name": "Multiple Businesses | Business B | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q2 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:49:59.921442Z",
      "durationMs": 988,
      "steps": [
        {
          "message": "Business B Q2 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business B Q2 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business B Q2 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceba5af1fb34c",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-10-05"
                },
                "periodIncome": {
                  "turnover": 4600.9,
                  "other": 63.75,
                  "taxTakenOffTradingIncome": 4.25
                },
                "periodExpenses": {
                  "adminCosts": 391
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 24.95
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "8ed471aa-b957-4686-b16d-56acc531df7a",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "2a9b3feb-f143-4124-b4dd-21f5d7ba9e5a",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2025-10-05"
                },
                "periodIncome": {
                  "turnover": 4600.9,
                  "other": 63.75,
                  "taxTakenOffTradingIncome": 4.25
                },
                "periodExpenses": {
                  "adminCosts": 391
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 24.95
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2025-10-05"
              },
              "periodIncome": {
                "turnover": 4600.9,
                "other": 63.75,
                "taxTakenOffTradingIncome": 4.25
              },
              "periodExpenses": {
                "adminCosts": 391
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 24.95
              }
            }
          ]
        },
        "details": {
          "business": "B",
          "businessId": "X1IS73403316474",
          "quarter": "Q2",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "8ed471aa-b957-4686-b16d-56acc531df7a",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2025-10-05T00:00:00.000Z",
            "periodKey": "Q2"
          },
          "submissionPayload": {
            "periodExpenses": {
              "adminCosts": 391.0
            }
          },
          "verification": {
            "subject": "Business B Q2 cumulative summary",
            "verified": true,
            "expectedPayload": {
              "periodExpenses": {
                "adminCosts": 391.0
              }
            }
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 364
        }
      }
    },
    {
      "name": "Multiple Businesses | Business B | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q3 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:00.912742Z",
      "durationMs": 822,
      "steps": [
        {
          "message": "Business B Q3 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business B Q3 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business B Q3 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebabdae5b378",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-01-05"
                },
                "periodIncome": {
                  "turnover": 7046.15,
                  "other": 111.25,
                  "taxTakenOffTradingIncome": 25.35
                },
                "periodExpenses": {
                  "adminCosts": 576.5
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 36.45
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "92fa7d85-8032-4923-a40d-b08b17245966",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "138bc63b-5255-4802-9119-c746122a96bb",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-01-05"
                },
                "periodIncome": {
                  "turnover": 7046.15,
                  "other": 111.25,
                  "taxTakenOffTradingIncome": 25.35
                },
                "periodExpenses": {
                  "adminCosts": 576.5
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 36.45
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2026-01-05"
              },
              "periodIncome": {
                "turnover": 7046.15,
                "other": 111.25,
                "taxTakenOffTradingIncome": 25.35
              },
              "periodExpenses": {
                "adminCosts": 576.5
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 36.45
              }
            }
          ]
        },
        "details": {
          "business": "B",
          "businessId": "X1IS73403316474",
          "quarter": "Q3",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "92fa7d85-8032-4923-a40d-b08b17245966",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-01-05T00:00:00.000Z",
            "periodKey": "Q3"
          },
          "verification": {
            "subject": "Business B Q3 cumulative summary",
            "verified": true
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 201
        }
      }
    },
    {
      "name": "Multiple Businesses | Business B | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits Q4 quarterly update",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:01.738365Z",
      "durationMs": 729,
      "steps": [
        {
          "message": "Business B Q4 quarterly submission returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business B Q4 cumulative submission and read-back used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        },
        {
          "message": "Business B Q4 cumulative read-back matched the submitted period, income, and expense fields.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26?gov-test-scenario=STATEFUL",
          "path": "/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "queryParameters": {
            "gov-test-scenario": "STATEFUL"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebb0aca2b0dd",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "body": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-04-05"
                },
                "periodIncome": {
                  "turnover": 9713.4,
                  "other": 148.75,
                  "taxTakenOffTradingIncome": 41.9
                },
                "periodExpenses": {
                  "adminCosts": 806.8
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 51.2
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutCumulativePeriodSummary",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "1a799295-b04a-45c9-887b-9e349f08ceb6",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "STATEFUL"
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "GetCumulativePeriodSummary",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/cumulative/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "b0df4c5d-0896-4dc0-a4ec-b00fa09ecba8",
              "payload": {
                "periodDates": {
                  "periodStartDate": "2025-04-06",
                  "periodEndDate": "2026-04-05"
                },
                "periodIncome": {
                  "turnover": 9713.4,
                  "other": 148.75,
                  "taxTakenOffTradingIncome": 41.9
                },
                "periodExpenses": {
                  "adminCosts": 806.8
                },
                "periodDisallowableExpenses": {
                  "adminCostsDisallowable": 51.2
                }
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "periodDates": {
                "periodStartDate": "2025-04-06",
                "periodEndDate": "2026-04-05"
              },
              "periodIncome": {
                "turnover": 9713.4,
                "other": 148.75,
                "taxTakenOffTradingIncome": 41.9
              },
              "periodExpenses": {
                "adminCosts": 806.8
              },
              "periodDisallowableExpenses": {
                "adminCostsDisallowable": 51.2
              }
            }
          ]
        },
        "details": {
          "business": "B",
          "businessId": "X1IS73403316474",
          "quarter": "Q4",
          "quarterlyPeriodType": "standard",
          "message": "Cumulative period summary submitted to HMRC.",
          "correlationId": "1a799295-b04a-45c9-887b-9e349f08ceb6",
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-04-05T00:00:00.000Z",
            "periodKey": "Q4"
          },
          "verification": {
            "subject": "Business B Q4 cumulative summary",
            "verified": true
          },
          "statusCode": 200,
          "hmrcStatusCode": 204
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 163
        }
      }
    },
    {
      "name": "Multiple Businesses | Business A | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits latest cumulative amendment before final annual review",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:02.471277Z",
      "durationMs": 162,
      "steps": [
        {
          "message": "Amendment detection is UI-side; this scenario exercises the submission path by re-submitting Business A Q4 with STATEFUL.",
          "passed": false,
          "warn": true
        },
        {
          "message": "Business A Q4 amendment returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business A Q4 amendment used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "stage": "Cumulative submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/cumulative/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "STATEFUL"
          },
          "body": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2026-04-05"
            },
            "periodIncome": {
              "turnover": 9088.0,
              "other": 130.0,
              "taxTakenOffTradingIncome": 37.65
            },
            "periodExpenses": {
              "adminCosts": 748.2
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 45.0
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "amendedQuarter": "Q4",
          "amendedBusiness": "A",
          "businessId": "X4IS27198436836",
          "businessName": "Pilates Studio",
          "statusCode": 200,
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-04-05T00:00:00.000Z",
            "periodKey": "Q4"
          },
          "submissionPayload": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2026-04-05"
            },
            "periodIncome": {
              "turnover": 9088.0,
              "other": 130.0,
              "taxTakenOffTradingIncome": 37.65
            },
            "periodExpenses": {
              "adminCosts": 748.2
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 45.0
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 29
        }
      }
    },
    {
      "name": "Multiple Businesses | Business B | Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/cumulative/{taxYear} submits latest cumulative amendment before final annual review",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:02.634773Z",
      "durationMs": 167,
      "steps": [
        {
          "message": "Amendment detection is UI-side; this scenario exercises the submission path by re-submitting Business B Q4 with STATEFUL.",
          "passed": false,
          "warn": true
        },
        {
          "message": "Business B Q4 amendment returned worker status 200.",
          "passed": true
        },
        {
          "message": "Business B Q4 amendment used Gov-Test-Scenario: STATEFUL.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "stage": "Cumulative submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X1IS73403316474/cumulative/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "STATEFUL"
          },
          "body": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2026-04-05"
            },
            "periodIncome": {
              "turnover": 9713.4,
              "other": 148.75,
              "taxTakenOffTradingIncome": 41.9
            },
            "periodExpenses": {
              "adminCosts": 806.8
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 51.2
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "amendedQuarter": "Q4",
          "amendedBusiness": "B",
          "businessId": "X1IS73403316474",
          "businessName": "Harbour Music Lessons",
          "statusCode": 200,
          "submissionPeriod": {
            "source": "business-cumulative-period",
            "periodStartDate": "2025-04-06T00:00:00.000Z",
            "periodEndDate": "2026-04-05T00:00:00.000Z",
            "periodKey": "Q4"
          },
          "submissionPayload": {
            "periodDates": {
              "periodStartDate": "2025-04-06",
              "periodEndDate": "2026-04-05"
            },
            "periodIncome": {
              "turnover": 9713.4,
              "other": 148.75,
              "taxTakenOffTradingIncome": 41.9
            },
            "periodExpenses": {
              "adminCosts": 806.8
            },
            "periodDisallowableExpenses": {
              "adminCostsDisallowable": 51.2
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 38
        }
      }
    },
    {
      "name": "Multiple Businesses | Extra Info API POST /hmrc/annual-data submits extra info and per-business annual self-employment final values",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:02.805153Z",
      "durationMs": 5184,
      "steps": [
        {
          "message": "Annual supplemental submission returned 13 item results across 14 Individuals APIs.",
          "passed": true
        },
        {
          "message": "All annual supplemental items completed without worker-level failure.",
          "passed": true
        },
        {
          "message": "Self-employment annual final values submitted for 2 business(es) via /hmrc/annual-data.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebb4a93aba0d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "4649",
            "content-type": "application/json",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "annualSubmissions": [
              {
                "nino": "WL254177A",
                "businessId": "X4IS27198436836",
                "taxYear": "2025-26",
                "adjustments": {
                  "includedNonTaxableProfits": 12.34,
                  "basisAdjustment": 4.56
                },
                "allowances": {
                  "annualInvestmentAllowance": 34.56
                },
                "nonFinancials": {
                  "businessDetailsChangedRecently": false
                }
              },
              {
                "nino": "WL254177A",
                "businessId": "X1IS73403316474",
                "taxYear": "2025-26",
                "adjustments": {
                  "includedNonTaxableProfits": 17.59,
                  "basisAdjustment": 6.66
                },
                "allowances": {
                  "annualInvestmentAllowance": 56.06
                },
                "nonFinancials": {
                  "businessDetailsChangedRecently": false
                }
              }
            ],
            "items": [
              {
                "code": "high-income-child-benefit-charge",
                "label": "High Income Child Benefit Charge",
                "method": "PUT",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
                "payload": {
                  "amountOfChildBenefitReceived": 1111.22,
                  "numberOfChildren": 2
                }
              },
              {
                "code": "savings-other",
                "label": "Other savings interest",
                "method": "PUT",
                "path": "/individuals/savings-income/other/WL254177A/2025-26",
                "payload": {
                  "securities": {
                    "taxTakenOff": 100.12,
                    "grossAmount": 1455.23,
                    "netAmount": 1355.11
                  },
                  "foreignInterest": [
                    {
                      "amountBeforeTax": 1232.67,
                      "countryCode": "DEU",
                      "taxTakenOff": 12.45,
                      "specialWithholdingTax": 14.78,
                      "taxableAmount": 1032.67,
                      "foreignTaxCreditRelief": true
                    }
                  ]
                }
              },
              {
                "code": "dividends-uk",
                "label": "UK dividends",
                "method": "PUT",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
                "payload": {
                  "ukDividends": 45.67,
                  "otherUkDividends": 12.34
                }
              },
              {
                "code": "pensions-income",
                "label": "Taxable pension income",
                "method": "PUT",
                "path": "/individuals/pensions-income/WL254177A/2025-26",
                "payload": {
                  "foreignPensions": [
                    {
                      "countryCode": "FRA",
                      "amountBeforeTax": 1999.99,
                      "taxTakenOff": 1999.99,
                      "specialWithholdingTax": 1999.99,
                      "foreignTaxCreditRelief": false,
                      "taxableAmount": 1999.99
                    }
                  ],
                  "overseasPensionContributions": [
                    {
                      "customerReference": "PENSIONINCOME245",
                      "exemptEmployersPensionContribs": 1999.99,
                      "migrantMemReliefQopsRefNo": "QOPS000000",
                      "dblTaxationRelief": 1999.99,
                      "dblTaxationCountryCode": "FRA",
                      "dblTaxationArticle": "AB3211-1",
                      "dblTaxationTreaty": "MUNICH",
                      "sf74reference": "SF74-123456"
                    }
                  ]
                }
              },
              {
                "code": "pensions-relief",
                "label": "Pension relief",
                "method": "PUT",
                "path": "/individuals/reliefs/pensions/WL254177A/2025-26",
                "payload": {
                  "pensionReliefs": {
                    "regularPensionContributions": 23.45,
                    "oneOffPensionContributionsPaid": 0,
                    "retirementAnnuityPayments": 0,
                    "paymentToEmployersSchemeNoTaxRelief": 0,
                    "overseasPensionSchemeContributions": 0
                  }
                }
              },
              {
                "code": "employment-income",
                "label": "Employment income",
                "method": "POST",
                "path": "/individuals/employments-income/WL254177A/2025-26",
                "payload": {
                  "employerRef": "123/AB56797",
                  "employerName": "Employer Name Ltd.",
                  "startDate": "2019-01-01",
                  "payrollId": "YDIAHPcYFQbOXLCKQ",
                  "occupationalPension": false
                }
              },
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              },
              {
                "code": "marriage-allowance",
                "label": "Marriage Allowance",
                "method": "POST",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A",
                "payload": {
                  "spouseOrCivilPartnerNino": "EK905549B",
                  "spouseOrCivilPartnerFirstName": "Suite",
                  "spouseOrCivilPartnerSurname": "Smoke",
                  "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
                }
              },
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              },
              {
                "code": "capital-gains-other",
                "label": "Other capital gains",
                "method": "PUT",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
                "payload": {
                  "otherGains": [
                    {
                      "assetType": "other-property",
                      "numberOfDisposals": 1,
                      "assetDescription": "PlayPay smoke capital gain",
                      "companyName": "PlayPay",
                      "companyRegistrationNumber": "11111111",
                      "acquisitionDate": "2025-04-07",
                      "disposalDate": "2025-07-10",
                      "disposalProceeds": 150,
                      "allowableCosts": 25,
                      "gainsWithBadr": 0,
                      "gainsWithInv": 0,
                      "gainsBeforeLosses": 125,
                      "losses": 0,
                      "claimOrElectionCodes": [
                        "PRR"
                      ],
                      "amountOfNetGain": 125,
                      "rttTaxPaid": 0
                    }
                  ]
                }
              },
              {
                "code": "other-expenses",
                "label": "Other expenses",
                "method": "PUT",
                "path": "/individuals/expenses/other/WL254177A/2025-26",
                "payload": {
                  "paymentsToTradeUnionsForDeathBenefits": {
                    "customerReference": "PLAYPAY OTHER EXPENSES",
                    "expenseAmount": 45.67
                  }
                }
              },
              {
                "code": "foreign-income",
                "label": "Foreign income",
                "method": "PUT",
                "path": "/individuals/foreign-income/WL254177A/2025-26",
                "payload": {
                  "foreignEarnings": {
                    "customerReference": "PLAYPAYFOREIGN1",
                    "earningsNotTaxableUK": 210
                  }
                }
              },
              {
                "code": "other-income",
                "label": "Other income",
                "method": "PUT",
                "path": "/individuals/other-income/WL254177A/2025-26",
                "payload": {
                  "businessReceipts": [
                    {
                      "grossAmount": 199.99,
                      "taxYear": "2025-26"
                    }
                  ]
                }
              }
            ]
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "adjustments": {
                  "includedNonTaxableProfits": 12.34,
                  "basisAdjustment": 4.56
                },
                "allowances": {
                  "annualInvestmentAllowance": 34.56
                },
                "nonFinancials": {
                  "businessDetailsChangedRecently": false
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutAnnualSubmission",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "8c98b324-2346-4f01-867f-7ac96a0aaa27",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X1IS73403316474/annual/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/annual/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "adjustments": {
                  "includedNonTaxableProfits": 17.59,
                  "basisAdjustment": 6.66
                },
                "allowances": {
                  "annualInvestmentAllowance": 56.06
                },
                "nonFinancials": {
                  "businessDetailsChangedRecently": false
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutAnnualSubmission",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X1IS73403316474/annual/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "5d59ecbf-6738-49bd-8cb1-b167dc643234",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "amountOfChildBenefitReceived": 1111.22,
                "numberOfChildren": 2
              },
              "hmrcApi": {
                "apiName": "IndividualsCharges",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-charges-api/3.0",
                "pathTemplate": "/individuals/charges/high-income-child-benefit/{nino}/{taxYear}",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "c0eccec6-bd08-4a5f-a08a-58f80b684a96",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/savings-income/other/WL254177A/2025-26",
              "path": "/individuals/savings-income/other/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "securities": {
                  "taxTakenOff": 100.12,
                  "grossAmount": 1455.23,
                  "netAmount": 1355.11
                },
                "foreignInterest": [
                  {
                    "amountBeforeTax": 1232.67,
                    "countryCode": "DEU",
                    "taxTakenOff": 12.45,
                    "specialWithholdingTax": 14.78,
                    "taxableAmount": 1032.67,
                    "foreignTaxCreditRelief": true
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsSavingsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-savings-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/savings-income/other/{nino}/{taxYear}",
                "path": "/individuals/savings-income/other/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "e5041f76-d307-4814-b897-3bd462456909",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/dividends-income/uk/WL254177A/2025-26",
              "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "ukDividends": 45.67,
                "otherUkDividends": 12.34
              },
              "hmrcApi": {
                "apiName": "IndividualsDividendsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-dividends-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/dividends-income/{nino}/{taxYear}",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "202db7a5-89c4-4b65-af92-7f3b63821a8f",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/pensions-income/WL254177A/2025-26",
              "path": "/individuals/pensions-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "foreignPensions": [
                  {
                    "countryCode": "FRA",
                    "amountBeforeTax": 1999.99,
                    "taxTakenOff": 1999.99,
                    "specialWithholdingTax": 1999.99,
                    "foreignTaxCreditRelief": false,
                    "taxableAmount": 1999.99
                  }
                ],
                "overseasPensionContributions": [
                  {
                    "customerReference": "PENSIONINCOME245",
                    "exemptEmployersPensionContribs": 1999.99,
                    "migrantMemReliefQopsRefNo": "QOPS000000",
                    "dblTaxationRelief": 1999.99,
                    "dblTaxationCountryCode": "FRA",
                    "dblTaxationArticle": "AB3211-1",
                    "dblTaxationTreaty": "MUNICH",
                    "sf74reference": "SF74-123456"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsPensionsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-pensions-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/pensions-income/{nino}/{taxYear}",
                "path": "/individuals/pensions-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "0a537f07-4f37-4a26-9f66-052c311776a5",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/reliefs/pensions/WL254177A/2025-26",
              "path": "/individuals/reliefs/pensions/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "pensionReliefs": {
                  "regularPensionContributions": 23.45,
                  "oneOffPensionContributionsPaid": 0,
                  "retirementAnnuityPayments": 0,
                  "paymentToEmployersSchemeNoTaxRelief": 0,
                  "overseasPensionSchemeContributions": 0
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsReliefs",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-reliefs-api/3.0/oas/page",
                "pathTemplate": "/individuals/reliefs/pensions/{nino}/{taxYear}",
                "path": "/individuals/reliefs/pensions/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "80695189-6ef0-4852-86ff-ac53592b161d",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/employments-income/WL254177A/2025-26",
              "path": "/individuals/employments-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "employerRef": "123/AB56797",
                "employerName": "Employer Name Ltd.",
                "startDate": "2019-01-01",
                "payrollId": "YDIAHPcYFQbOXLCKQ",
                "occupationalPension": false
              },
              "hmrcApi": {
                "apiName": "IndividualsEmploymentsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-employments-income-api/2.0",
                "pathTemplate": "/individuals/employments-income/{nino}/{taxYear}",
                "path": "/individuals/employments-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "b594138f-a78f-4803-a4e1-cd5773217a4a",
              "payload": {
                "employmentId": "4557ecb5-fd32-48cc-81f5-e6acd1099f3c"
              }
            }
          },
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "553a27cf-97ee-4599-809e-13073d059200",
              "payload": {
                "benefitId": "b1e8057e-fbbc-47a8-a8b4-78d9f015c253"
              }
            }
          },
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disclosures/marriage-allowance/WL254177A",
              "path": "/individuals/disclosures/marriage-allowance/WL254177A",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "spouseOrCivilPartnerNino": "EK905549B",
                "spouseOrCivilPartnerFirstName": "Suite",
                "spouseOrCivilPartnerSurname": "Smoke",
                "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
              },
              "hmrcApi": {
                "apiName": "IndividualsDisclosures",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-disclosures-api/2.0/oas/page",
                "pathTemplate": "/individuals/disclosures/{nino}/{taxYear}",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A"
              }
            },
            "hmrc-response": {
              "status": 201,
              "correlationId": "a6681fe2-c354-4660-8291-440bbd0f6614",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 201,
              "correlationId": "674186bf-8ee8-46c1-a5bb-de844539a8a0",
              "payload": {
                "claimId": "QXYZ1234567890D"
              }
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "otherGains": [
                  {
                    "assetType": "other-property",
                    "numberOfDisposals": 1,
                    "assetDescription": "PlayPay smoke capital gain",
                    "companyName": "PlayPay",
                    "companyRegistrationNumber": "11111111",
                    "acquisitionDate": "2025-04-07",
                    "disposalDate": "2025-07-10",
                    "disposalProceeds": 150,
                    "allowableCosts": 25,
                    "gainsWithBadr": 0,
                    "gainsWithInv": 0,
                    "gainsBeforeLosses": 125,
                    "losses": 0,
                    "claimOrElectionCodes": [
                      "PRR"
                    ],
                    "amountOfNetGain": 125,
                    "rttTaxPaid": 0
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsCapitalGainsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-capital-gains-income-api/3.0/oas/page",
                "pathTemplate": "/individuals/disposals-income/other-gains/{nino}/{taxYear}",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "0ddea930-3ee0-4bf4-a781-40e0f68fc38d",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/expenses/other/WL254177A/2025-26",
              "path": "/individuals/expenses/other/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "paymentsToTradeUnionsForDeathBenefits": {
                  "customerReference": "PLAYPAY OTHER EXPENSES",
                  "expenseAmount": 45.67
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsExpenses",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-expenses-api/3.0/oas/page",
                "pathTemplate": "/individuals/expenses/other/{nino}/{taxYear}",
                "path": "/individuals/expenses/other/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 204,
              "correlationId": "c04d75d5-8ecc-4780-8b95-6d0610c23213",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/foreign-income/WL254177A/2025-26",
              "path": "/individuals/foreign-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "foreignEarnings": {
                  "customerReference": "PLAYPAYFOREIGN1",
                  "earningsNotTaxableUK": 210
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsForeignIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-foreign-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/foreign-income/{nino}/{taxYear}",
                "path": "/individuals/foreign-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "2168a52a-abc7-4abb-8e95-47b7612caf8a",
              "payload": {}
            }
          },
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/other-income/WL254177A/2025-26",
              "path": "/individuals/other-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1"
              },
              "body": {
                "businessReceipts": [
                  {
                    "grossAmount": 199.99,
                    "taxYear": "2025-26"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsOtherIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-other-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/other-income/{nino}/{taxYear}",
                "path": "/individuals/other-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "c39f724d-8086-42ab-a068-dfd5a7f0eb1c",
              "payload": {}
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {},
            {},
            {},
            {},
            {},
            {
              "employmentId": "4557ecb5-fd32-48cc-81f5-e6acd1099f3c"
            },
            {
              "benefitId": "b1e8057e-fbbc-47a8-a8b4-78d9f015c253"
            },
            {
              "employmentId": "4557ecb5-fd32-48cc-81f5-e6acd1099f3c"
            },
            {
              "claimId": "QXYZ1234567890D"
            },
            {},
            {
              "claimId": "QXYZ1234567890D"
            },
            {},
            {}
          ]
        },
        "details": {
          "annualBusinessCount": 2,
          "annualBusinessIds": [
            "X4IS27198436836",
            "X1IS73403316474"
          ],
          "annualSubmissions": [
            {
              "businessId": "X4IS27198436836",
              "businessLabel": "A"
            },
            {
              "businessId": "X1IS73403316474",
              "businessLabel": "B"
            }
          ],
          "itemCount": 13,
          "failedItemCount": 0,
          "requestedCodes": [
            "high-income-child-benefit-charge",
            "savings-other",
            "dividends-uk",
            "pensions-income",
            "pensions-relief",
            "employment-income",
            "state-benefits",
            "marriage-allowance",
            "loss-claims",
            "capital-gains-other",
            "other-expenses",
            "foreign-income",
            "other-income"
          ],
          "apisCovered": [
            "IndividualLosses",
            "IndividualsCapitalGainsIncome",
            "IndividualsCharges",
            "IndividualsDisclosures",
            "IndividualsDividendsIncome",
            "IndividualsEmploymentsIncome",
            "IndividualsExpenses",
            "IndividualsForeignIncome",
            "IndividualsOtherIncome",
            "IndividualsPensionsIncome",
            "IndividualsReliefs",
            "IndividualsSavingsIncome",
            "IndividualsStateBenefits",
            "SelfEmployment"
          ],
          "itemResults": [
            {
              "code": "high-income-child-benefit-charge",
              "label": "High Income Child Benefit Charge",
              "statusCode": 204,
              "success": true,
              "correlationId": "c0eccec6-bd08-4a5f-a08a-58f80b684a96"
            },
            {
              "code": "savings-other",
              "label": "Other savings interest",
              "statusCode": 200,
              "success": true,
              "correlationId": "e5041f76-d307-4814-b897-3bd462456909"
            },
            {
              "code": "dividends-uk",
              "label": "UK dividends",
              "statusCode": 200,
              "success": true,
              "correlationId": "202db7a5-89c4-4b65-af92-7f3b63821a8f"
            },
            {
              "code": "pensions-income",
              "label": "Taxable pension income",
              "statusCode": 200,
              "success": true,
              "correlationId": "0a537f07-4f37-4a26-9f66-052c311776a5"
            },
            {
              "code": "pensions-relief",
              "label": "Pension relief",
              "statusCode": 204,
              "success": true,
              "correlationId": "80695189-6ef0-4852-86ff-ac53592b161d"
            },
            {
              "code": "employment-income",
              "label": "Employment income",
              "statusCode": 200,
              "success": true,
              "correlationId": "b594138f-a78f-4803-a4e1-cd5773217a4a"
            },
            {
              "code": "state-benefits",
              "label": "Taxable state benefits",
              "statusCode": 200,
              "success": true,
              "correlationId": "553a27cf-97ee-4599-809e-13073d059200"
            },
            {
              "code": "marriage-allowance",
              "label": "Marriage Allowance",
              "statusCode": 201,
              "success": true,
              "correlationId": "a6681fe2-c354-4660-8291-440bbd0f6614"
            },
            {
              "code": "loss-claims",
              "label": "Loss claims",
              "statusCode": 201,
              "success": true,
              "correlationId": "674186bf-8ee8-46c1-a5bb-de844539a8a0"
            },
            {
              "code": "capital-gains-other",
              "label": "Other capital gains",
              "statusCode": 204,
              "success": true,
              "correlationId": "0ddea930-3ee0-4bf4-a781-40e0f68fc38d"
            },
            {
              "code": "other-expenses",
              "label": "Other expenses",
              "statusCode": 204,
              "success": true,
              "correlationId": "c04d75d5-8ecc-4780-8b95-6d0610c23213"
            },
            {
              "code": "foreign-income",
              "label": "Foreign income",
              "statusCode": 200,
              "success": true,
              "correlationId": "2168a52a-abc7-4abb-8e95-47b7612caf8a"
            },
            {
              "code": "other-income",
              "label": "Other income",
              "statusCode": 200,
              "success": true,
              "correlationId": "c39f724d-8086-42ab-a068-dfd5a7f0eb1c"
            }
          ]
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 5037
        }
      }
    },
    {
      "name": "Multiple Businesses | Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise triggers a tax calculation",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:07.995390Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "Tax calculation already triggered in the Single Business section; reusing calculationId f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c for all businesses.",
          "passed": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
          "reused": true,
          "businessCount": 2
        },
        "status": {
          "scenario": "passed"
        }
      }
    },
    {
      "name": "Multiple Businesses | Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/{calculationId}/final-declaration submits the final declaration",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:07.996581Z",
      "durationMs": 158,
      "steps": [
        {
          "message": "Final declaration (all businesses) returned worker status 200.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "stage": "Final declaration",
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c/final-declaration",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "authorization": "Bearer ***",
            "X-PlayPay-Trace": "1"
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "calculationId": "f2fb30e5-4ab6-4a29-b3c1-c7264259ff1c",
          "statusCode": 200
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 32
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity",
      "subtitle": "HMRC Scenario: PROPERTY. Simulates a successful response with a UK-property business.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:08.157647Z",
      "durationMs": 315,
      "steps": [
        {
          "message": "1 business found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=PROPERTY",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "PROPERTY"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebd61ca5d404",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "PROPERTY"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "13e57cfc-cebc-46b5-959d-ec8025cf676f",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "uk-property",
                    "businessId": "XPIS12345678901"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "XPIS12345678901",
                  "businessName": "XPIS12345678901"
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "PROPERTY",
          "businessCount": 1
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 180
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity",
      "subtitle": "HMRC Scenario: FOREIGN_PROPERTY. Simulates a successful response with a foreign-property business.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:08.473551Z",
      "durationMs": 431,
      "steps": [
        {
          "message": "1 business found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=FOREIGN_PROPERTY",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "FOREIGN_PROPERTY"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebd81a8326aa",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "FOREIGN_PROPERTY"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "e322070c-2f51-417e-a4b7-0b8a49185a78",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "foreign-property",
                    "businessId": "XFIS12345678901"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "XFIS12345678901",
                  "businessName": "XFIS12345678901"
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "FOREIGN_PROPERTY",
          "businessCount": 1
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 300
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity",
      "subtitle": "HMRC Scenario: BUSINESS_AND_PROPERTY. Simulates a successful response with a self-employment, UK-property and foreign-property business.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:08.907019Z",
      "durationMs": 406,
      "steps": [
        {
          "message": "3 businesses found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=BUSINESS_AND_PROPERTY",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "BUSINESS_AND_PROPERTY"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebdacc2b3477",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "BUSINESS_AND_PROPERTY"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "5fdf8db6-7334-44c9-bd8e-4d1a67aeec34",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "XBIS12345678901",
                    "tradingName": "Company X"
                  },
                  {
                    "typeOfBusiness": "uk-property",
                    "businessId": "XPIS12345678901"
                  },
                  {
                    "typeOfBusiness": "foreign-property",
                    "businessId": "XFIS12345678901"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "XBIS12345678901",
                  "businessName": "Company X"
                },
                {
                  "businessId": "XPIS12345678901",
                  "businessName": "XPIS12345678901"
                },
                {
                  "businessId": "XFIS12345678901",
                  "businessName": "XFIS12345678901"
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "BUSINESS_AND_PROPERTY",
          "businessCount": 3
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 263
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity",
      "subtitle": "HMRC Scenario: UNSPECIFIED. Simulates a successful response with a property-unspecified business.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:09.314521Z",
      "durationMs": 300,
      "steps": [
        {
          "message": "1 business found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=UNSPECIFIED",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "UNSPECIFIED"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebdd4980eb13",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "UNSPECIFIED"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "7ffc401e-e8c5-4169-a5bb-cfa8238e5dc7",
              "payload": {
                "listOfBusinesses": [
                  {
                    "typeOfBusiness": "property-unspecified",
                    "businessId": "XAIS12345678901"
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": [
                {
                  "businessId": "XAIS12345678901",
                  "businessName": "XAIS12345678901"
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "UNSPECIFIED",
          "businessCount": 1
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 167
        }
      }
    },
    {
      "name": "Business Details API GET /hmrc/identity",
      "subtitle": "HMRC Scenario: NOT_FOUND. Simulates the scenario where no data is found.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:09.618436Z",
      "durationMs": 338,
      "steps": [
        {
          "message": "0 businesses found.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/identity?nino=WL254177A&gov-test-scenario=NOT_FOUND",
          "path": "/hmrc/identity",
          "queryParameters": {
            "nino": "WL254177A",
            "gov-test-scenario": "NOT_FOUND"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebdf4cd3f469",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/details/WL254177A/list",
              "path": "/individuals/business/details/WL254177A/list",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NOT_FOUND"
              },
              "hmrcApi": {
                "apiName": "BusinessDetails",
                "operation": "ListBusinesses",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/business-details-api/2.0",
                "pathTemplate": "/individuals/business/details/{nino}/list",
                "path": "/individuals/business/details/WL254177A/list"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "cb258958-3037-49c6-804c-71bf54cf258c",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "nino": "WL254177A",
              "businesses": []
            }
          ]
        },
        "details": {
          "scenario": "NOT_FOUND",
          "businessCount": 0
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 191
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations",
      "subtitle": "HMRC Scenario: OPEN. Simulates a success response with an open obligation for the self-employment businessId XBIS12345678903.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:09.958325Z",
      "durationMs": 306,
      "steps": [
        {
          "message": "Obligations scenario OPEN returned 4 obligation(s).",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=XBIS12345678903&status=open&typeOfBusiness=self-employment&gov-test-scenario=OPEN",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "XBIS12345678903",
            "status": "open",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "OPEN"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebe1696b709a",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=XBIS12345678903",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "open",
                "typeOfBusiness": "self-employment",
                "businessId": "XBIS12345678903"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OPEN"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=XBIS12345678903"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "0f61a3f6-f572-4934-8c37-73504f28773a",
              "payload": {
                "obligations": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "XBIS12345678903",
                    "obligationDetails": [
                      {
                        "periodStartDate": "2018-04-06",
                        "periodEndDate": "2018-07-05",
                        "dueDate": "2018-08-05",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2018-07-06",
                        "periodEndDate": "2018-10-05",
                        "dueDate": "2018-11-05",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2018-10-06",
                        "periodEndDate": "2019-01-05",
                        "dueDate": "2019-02-05",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2019-01-06",
                        "periodEndDate": "2019-04-05",
                        "dueDate": "2019-05-05",
                        "status": "open"
                      }
                    ]
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": [
                {
                  "typeOfBusiness": "self-employment",
                  "businessId": "XBIS12345678903",
                  "obligationDetails": [
                    {
                      "periodStartDate": "2018-04-06",
                      "periodEndDate": "2018-07-05",
                      "dueDate": "2018-08-05",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2018-07-06",
                      "periodEndDate": "2018-10-05",
                      "dueDate": "2018-11-05",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2018-10-06",
                      "periodEndDate": "2019-01-05",
                      "dueDate": "2019-02-05",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2019-01-06",
                      "periodEndDate": "2019-04-05",
                      "dueDate": "2019-05-05",
                      "status": "open"
                    }
                  ]
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "OPEN",
          "obligationCount": 4,
          "obligations": [
            {
              "periodKey": "2018-04-06_2018-07-05",
              "periodStartDate": "2018-04-06T00:00:00.000Z",
              "periodEndDate": "2018-07-05T00:00:00.000Z",
              "dueDate": "2018-08-05T00:00:00.000Z"
            },
            {
              "periodKey": "2018-07-06_2018-10-05",
              "periodStartDate": "2018-07-06T00:00:00.000Z",
              "periodEndDate": "2018-10-05T00:00:00.000Z",
              "dueDate": "2018-11-05T00:00:00.000Z"
            },
            {
              "periodKey": "2018-10-06_2019-01-05",
              "periodStartDate": "2018-10-06T00:00:00.000Z",
              "periodEndDate": "2019-01-05T00:00:00.000Z",
              "dueDate": "2019-02-05T00:00:00.000Z"
            },
            {
              "periodKey": "2019-01-06_2019-04-05",
              "periodStartDate": "2019-01-06T00:00:00.000Z",
              "periodEndDate": "2019-04-05T00:00:00.000Z",
              "dueDate": "2019-05-05T00:00:00.000Z"
            }
          ]
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 156
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations",
      "subtitle": "HMRC Scenario: FULFILLED. Simulates a success response with a fulfilled obligation for the self-employment businessId XBIS12345678902.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:10.267050Z",
      "durationMs": 299,
      "steps": [
        {
          "message": "Obligations scenario FULFILLED returned 4 obligation(s).",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=XBIS12345678902&status=fulfilled&typeOfBusiness=self-employment&gov-test-scenario=FULFILLED",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "XBIS12345678902",
            "status": "fulfilled",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "FULFILLED"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebe339f3f060",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=fulfilled&typeOfBusiness=self-employment&businessId=XBIS12345678902",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "fulfilled",
                "typeOfBusiness": "self-employment",
                "businessId": "XBIS12345678902"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "FULFILLED"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=fulfilled&typeOfBusiness=self-employment&businessId=XBIS12345678902"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "368403b3-bfcf-4f4e-a9a6-aeb4118e1b61",
              "payload": {
                "obligations": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "XBIS12345678902",
                    "obligationDetails": [
                      {
                        "periodStartDate": "2018-04-06",
                        "periodEndDate": "2018-07-05",
                        "dueDate": "2018-08-05",
                        "receivedDate": "2018-08-01",
                        "status": "fulfilled"
                      },
                      {
                        "periodStartDate": "2018-07-06",
                        "periodEndDate": "2018-10-05",
                        "dueDate": "2018-11-05",
                        "receivedDate": "2018-11-01",
                        "status": "fulfilled"
                      },
                      {
                        "periodStartDate": "2018-10-06",
                        "periodEndDate": "2019-01-05",
                        "dueDate": "2019-02-05",
                        "receivedDate": "2019-01-01",
                        "status": "fulfilled"
                      },
                      {
                        "periodStartDate": "2019-01-06",
                        "periodEndDate": "2019-04-05",
                        "dueDate": "2019-05-05",
                        "receivedDate": "2019-05-01",
                        "status": "fulfilled"
                      }
                    ]
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": [
                {
                  "typeOfBusiness": "self-employment",
                  "businessId": "XBIS12345678902",
                  "obligationDetails": [
                    {
                      "periodStartDate": "2018-04-06",
                      "periodEndDate": "2018-07-05",
                      "dueDate": "2018-08-05",
                      "receivedDate": "2018-08-01",
                      "status": "fulfilled"
                    },
                    {
                      "periodStartDate": "2018-07-06",
                      "periodEndDate": "2018-10-05",
                      "dueDate": "2018-11-05",
                      "receivedDate": "2018-11-01",
                      "status": "fulfilled"
                    },
                    {
                      "periodStartDate": "2018-10-06",
                      "periodEndDate": "2019-01-05",
                      "dueDate": "2019-02-05",
                      "receivedDate": "2019-01-01",
                      "status": "fulfilled"
                    },
                    {
                      "periodStartDate": "2019-01-06",
                      "periodEndDate": "2019-04-05",
                      "dueDate": "2019-05-05",
                      "receivedDate": "2019-05-01",
                      "status": "fulfilled"
                    }
                  ]
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "FULFILLED",
          "obligationCount": 4,
          "obligations": [
            {
              "periodKey": "2018-04-06_2018-07-05",
              "periodStartDate": "2018-04-06T00:00:00.000Z",
              "periodEndDate": "2018-07-05T00:00:00.000Z",
              "dueDate": "2018-08-05T00:00:00.000Z",
              "receivedDate": "2018-08-01T00:00:00.000Z"
            },
            {
              "periodKey": "2018-07-06_2018-10-05",
              "periodStartDate": "2018-07-06T00:00:00.000Z",
              "periodEndDate": "2018-10-05T00:00:00.000Z",
              "dueDate": "2018-11-05T00:00:00.000Z",
              "receivedDate": "2018-11-01T00:00:00.000Z"
            },
            {
              "periodKey": "2018-10-06_2019-01-05",
              "periodStartDate": "2018-10-06T00:00:00.000Z",
              "periodEndDate": "2019-01-05T00:00:00.000Z",
              "dueDate": "2019-02-05T00:00:00.000Z",
              "receivedDate": "2019-01-01T00:00:00.000Z"
            },
            {
              "periodKey": "2019-01-06_2019-04-05",
              "periodStartDate": "2019-01-06T00:00:00.000Z",
              "periodEndDate": "2019-04-05T00:00:00.000Z",
              "dueDate": "2019-05-05T00:00:00.000Z",
              "receivedDate": "2019-05-01T00:00:00.000Z"
            }
          ]
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 171
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations",
      "subtitle": "HMRC Scenario: CUMULATIVE. Simulates a success response with cumulative quarterly updates.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:10.569498Z",
      "durationMs": 373,
      "steps": [
        {
          "message": "Obligations scenario CUMULATIVE returned 4 obligation(s).",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=XBIS12345678901&status=open&typeOfBusiness=self-employment&gov-test-scenario=CUMULATIVE",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "XBIS12345678901",
            "status": "open",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "CUMULATIVE"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebe5286fb3fe",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=XBIS12345678901",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "open",
                "typeOfBusiness": "self-employment",
                "businessId": "XBIS12345678901"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "CUMULATIVE"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=XBIS12345678901"
              }
            },
            "hmrc-response": {
              "status": 200,
              "correlationId": "683e5718-41e7-48bd-ae2a-0d03d1a6c379",
              "payload": {
                "obligations": [
                  {
                    "typeOfBusiness": "self-employment",
                    "businessId": "XBIS12345678901",
                    "obligationDetails": [
                      {
                        "periodStartDate": "2026-04-06",
                        "periodEndDate": "2026-07-05",
                        "dueDate": "2026-08-07",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2026-04-06",
                        "periodEndDate": "2026-10-05",
                        "dueDate": "2026-11-07",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2026-04-06",
                        "periodEndDate": "2027-01-05",
                        "dueDate": "2027-02-07",
                        "status": "open"
                      },
                      {
                        "periodStartDate": "2026-04-06",
                        "periodEndDate": "2027-04-05",
                        "dueDate": "2027-05-07",
                        "status": "open"
                      }
                    ]
                  }
                ]
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": [
                {
                  "typeOfBusiness": "self-employment",
                  "businessId": "XBIS12345678901",
                  "obligationDetails": [
                    {
                      "periodStartDate": "2026-04-06",
                      "periodEndDate": "2026-07-05",
                      "dueDate": "2026-08-07",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2026-04-06",
                      "periodEndDate": "2026-10-05",
                      "dueDate": "2026-11-07",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2026-04-06",
                      "periodEndDate": "2027-01-05",
                      "dueDate": "2027-02-07",
                      "status": "open"
                    },
                    {
                      "periodStartDate": "2026-04-06",
                      "periodEndDate": "2027-04-05",
                      "dueDate": "2027-05-07",
                      "status": "open"
                    }
                  ]
                }
              ]
            }
          ]
        },
        "details": {
          "scenario": "CUMULATIVE",
          "obligationCount": 4,
          "obligations": [
            {
              "periodKey": "2026-04-06_2026-07-05",
              "periodStartDate": "2026-04-06T00:00:00.000Z",
              "periodEndDate": "2026-07-05T00:00:00.000Z",
              "dueDate": "2026-08-07T00:00:00.000Z"
            },
            {
              "periodKey": "2026-04-06_2026-10-05",
              "periodStartDate": "2026-04-06T00:00:00.000Z",
              "periodEndDate": "2026-10-05T00:00:00.000Z",
              "dueDate": "2026-11-07T00:00:00.000Z"
            },
            {
              "periodKey": "2026-04-06_2027-01-05",
              "periodStartDate": "2026-04-06T00:00:00.000Z",
              "periodEndDate": "2027-01-05T00:00:00.000Z",
              "dueDate": "2027-02-07T00:00:00.000Z"
            },
            {
              "periodKey": "2026-04-06_2027-04-05",
              "periodStartDate": "2026-04-06T00:00:00.000Z",
              "periodEndDate": "2027-04-05T00:00:00.000Z",
              "dueDate": "2027-05-07T00:00:00.000Z"
            }
          ]
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 236
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations returns INSOLVENT_TRADER as a controlled HMRC error",
      "subtitle": "HMRC Scenario: INSOLVENT_TRADER. Simulates a scenario where the remote endpoint indicates that the trader is insolvent.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:10.946838Z",
      "durationMs": 332,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: INSOLVENT_TRADER.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched INSOLVENT_TRADER.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&status=open&typeOfBusiness=self-employment&gov-test-scenario=INSOLVENT_TRADER",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "X4IS27198436836",
            "status": "open",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "INSOLVENT_TRADER"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebe799aeb119",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "open",
                "typeOfBusiness": "self-employment",
                "businessId": "X4IS27198436836"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "INSOLVENT_TRADER"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "74e0c699-40c9-4502-8dc5-8d60657af81f",
              "payload": {
                "code": "RULE_INSOLVENT_TRADER",
                "message": "The remote endpoint has indicated that the Trader is insolvent"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "Failed to fetch HMRC obligations.",
              "hmrcStatus": 400,
              "correlationId": "74e0c699-40c9-4502-8dc5-8d60657af81f",
              "body": {
                "code": "RULE_INSOLVENT_TRADER",
                "message": "The remote endpoint has indicated that the Trader is insolvent"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "INSOLVENT_TRADER",
            "RULE_INSOLVENT_TRADER"
          ],
          "matchedCodeFragment": "INSOLVENT_TRADER",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              },
              "request": {
                "method": "GET",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&status=open&typeOfBusiness=self-employment&gov-test-scenario=INSOLVENT_TRADER",
                "path": "/hmrc/obligations",
                "queryParameters": {
                  "nino": "WL254177A",
                  "businessId": "X4IS27198436836",
                  "status": "open",
                  "typeOfBusiness": "self-employment",
                  "gov-test-scenario": "INSOLVENT_TRADER"
                },
                "headers": {
                  "accept": "application/json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebe799aeb119",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "GET",
                    "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836",
                    "path": "/obligations/details/WL254177A/income-and-expenditure",
                    "queryParameters": {
                      "status": "open",
                      "typeOfBusiness": "self-employment",
                      "businessId": "X4IS27198436836"
                    },
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.3.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "INSOLVENT_TRADER"
                    },
                    "hmrcApi": {
                      "apiName": "Obligations",
                      "operation": "GetObligations",
                      "method": "GET",
                      "acceptHeader": "application/vnd.hmrc.3.0+json",
                      "version": "3.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                      "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                      "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "Obligations",
                    "operation": "GetObligations",
                    "method": "GET",
                    "acceptHeader": "application/vnd.hmrc.3.0+json",
                    "version": "3.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                    "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                    "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 198
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations returns NOT_FOUND as a controlled HMRC error",
      "subtitle": "HMRC Scenario: NOT_FOUND. Simulates the scenario where no data is found.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:11.283725Z",
      "durationMs": 389,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: NOT_FOUND.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched NOT_FOUND.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&status=open&typeOfBusiness=self-employment&gov-test-scenario=NOT_FOUND",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "X4IS27198436836",
            "status": "open",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "NOT_FOUND"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebe9ac21c494",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "open",
                "typeOfBusiness": "self-employment",
                "businessId": "X4IS27198436836"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NOT_FOUND"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "5e5048dd-020f-41ea-b67a-7ca831d5aaf2",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 404,
          "payload": [
            {
              "error": "Failed to fetch HMRC obligations.",
              "hmrcStatus": 404,
              "correlationId": "5e5048dd-020f-41ea-b67a-7ca831d5aaf2",
              "body": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "NOT_FOUND",
            "MATCHING_RESOURCE_NOT_FOUND"
          ],
          "matchedCodeFragment": "NOT_FOUND",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              },
              "request": {
                "method": "GET",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&status=open&typeOfBusiness=self-employment&gov-test-scenario=NOT_FOUND",
                "path": "/hmrc/obligations",
                "queryParameters": {
                  "nino": "WL254177A",
                  "businessId": "X4IS27198436836",
                  "status": "open",
                  "typeOfBusiness": "self-employment",
                  "gov-test-scenario": "NOT_FOUND"
                },
                "headers": {
                  "accept": "application/json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebe9ac21c494",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "GET",
                    "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836",
                    "path": "/obligations/details/WL254177A/income-and-expenditure",
                    "queryParameters": {
                      "status": "open",
                      "typeOfBusiness": "self-employment",
                      "businessId": "X4IS27198436836"
                    },
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.3.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "NOT_FOUND"
                    },
                    "hmrcApi": {
                      "apiName": "Obligations",
                      "operation": "GetObligations",
                      "method": "GET",
                      "acceptHeader": "application/vnd.hmrc.3.0+json",
                      "version": "3.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                      "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                      "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "Obligations",
                    "operation": "GetObligations",
                    "method": "GET",
                    "acceptHeader": "application/vnd.hmrc.3.0+json",
                    "version": "3.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                    "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                    "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 404,
          "durationMs": 247
        }
      }
    },
    {
      "name": "Obligations API GET /hmrc/obligations returns no obligations when HMRC replies NO_OBLIGATIONS_FOUND",
      "subtitle": "HMRC Scenario: NO_OBLIGATIONS_FOUND. Simulates a scenario where no obligations are found.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:11.677570Z",
      "durationMs": 318,
      "steps": [
        {
          "message": "Worker normalised HMRC NO_OBLIGATIONS_FOUND into an empty obligations list.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "GET",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/obligations?nino=WL254177A&businessId=X4IS27198436836&status=open&typeOfBusiness=self-employment&gov-test-scenario=NO_OBLIGATIONS_FOUND",
          "path": "/hmrc/obligations",
          "queryParameters": {
            "nino": "WL254177A",
            "businessId": "X4IS27198436836",
            "status": "open",
            "typeOfBusiness": "self-employment",
            "gov-test-scenario": "NO_OBLIGATIONS_FOUND"
          },
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebec0bd2074f",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "GET",
              "url": "https://test-api.service.hmrc.gov.uk/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836",
              "path": "/obligations/details/WL254177A/income-and-expenditure",
              "queryParameters": {
                "status": "open",
                "typeOfBusiness": "self-employment",
                "businessId": "X4IS27198436836"
              },
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NO_OBLIGATIONS_FOUND"
              },
              "hmrcApi": {
                "apiName": "Obligations",
                "operation": "GetObligations",
                "method": "GET",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/obligations-api/3.0",
                "pathTemplate": "/obligations/details/{nino}/income-and-expenditure",
                "path": "/obligations/details/WL254177A/income-and-expenditure?status=open&typeOfBusiness=self-employment&businessId=X4IS27198436836"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "65e7cfa7-4f56-4139-bba4-29151b88de6a",
              "payload": {
                "code": "NO_OBLIGATIONS_FOUND",
                "message": "No obligations found using this filter"
              }
            }
          }
        ],
        "response": {
          "status": 200,
          "payload": [
            {
              "obligations": []
            }
          ]
        },
        "details": {
          "scenario": "NO_OBLIGATIONS_FOUND",
          "obligationCount": 0
        },
        "status": {
          "scenario": "passed",
          "http": 200,
          "durationMs": 184
        }
      }
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/annual/{taxYear} returns ALLOWANCE_NOT_SUPPORTED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: ALLOWANCE_NOT_SUPPORTED. Simulates the scenario where one or more of the supplied allowances is not supported for the supplied tax year.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:11.998678Z",
      "durationMs": 459,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: ALLOWANCE_NOT_SUPPORTED.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched ALLOWANCE_NOT_SUPPORTED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebee1c482581",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "180",
            "content-type": "application/json",
            "gov-test-scenario": "ALLOWANCE_NOT_SUPPORTED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "adjustments": {
              "includedNonTaxableProfits": 12.34,
              "basisAdjustment": 4.56
            },
            "allowances": {
              "annualInvestmentAllowance": 34.56
            },
            "nonFinancials": {
              "businessDetailsChangedRecently": false
            }
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
              "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.5.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "ALLOWANCE_NOT_SUPPORTED"
              },
              "body": {
                "adjustments": {
                  "includedNonTaxableProfits": 12.34,
                  "basisAdjustment": 4.56
                },
                "allowances": {
                  "annualInvestmentAllowance": 34.56
                },
                "nonFinancials": {
                  "businessDetailsChangedRecently": false
                }
              },
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutAnnualSubmission",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "c8ac7640-17e7-41a8-9bad-c5ba4dda7780",
              "payload": {
                "code": "RULE_ALLOWANCE_NOT_SUPPORTED",
                "message": "One or more of supplied allowances (electricChargePointAllowance, zeroEmissionsCarAllowance, structuredBuildingAllowance, enhancedStructuredBuildingAllowance) is not supported for the supplied tax year"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC annual submission rejected.",
              "hmrcStatus": 400,
              "correlationId": "c8ac7640-17e7-41a8-9bad-c5ba4dda7780",
              "body": {
                "code": "RULE_ALLOWANCE_NOT_SUPPORTED",
                "message": "One or more of supplied allowances (electricChargePointAllowance, zeroEmissionsCarAllowance, structuredBuildingAllowance, enhancedStructuredBuildingAllowance) is not supported for the supplied tax year"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "ALLOWANCE_NOT_SUPPORTED"
          ],
          "matchedCodeFragment": "ALLOWANCE_NOT_SUPPORTED",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "SelfEmployment",
                "operation": "PutAnnualSubmission",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.5.0+json",
                "version": "5.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26"
              },
              "request": {
                "method": "PUT",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
                "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
                "headers": {
                  "accept": "application/json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebee1c482581",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "180",
                  "content-type": "application/json",
                  "gov-test-scenario": "ALLOWANCE_NOT_SUPPORTED",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                },
                "body": {
                  "adjustments": {
                    "includedNonTaxableProfits": 12.34,
                    "basisAdjustment": 4.56
                  },
                  "allowances": {
                    "annualInvestmentAllowance": 34.56
                  },
                  "nonFinancials": {
                    "businessDetailsChangedRecently": false
                  }
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "PUT",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.5.0+json",
                      "content-type": "application/json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "ALLOWANCE_NOT_SUPPORTED"
                    },
                    "body": {
                      "adjustments": {
                        "includedNonTaxableProfits": 12.34,
                        "basisAdjustment": 4.56
                      },
                      "allowances": {
                        "annualInvestmentAllowance": 34.56
                      },
                      "nonFinancials": {
                        "businessDetailsChangedRecently": false
                      }
                    },
                    "hmrcApi": {
                      "apiName": "SelfEmployment",
                      "operation": "PutAnnualSubmission",
                      "method": "PUT",
                      "acceptHeader": "application/vnd.hmrc.5.0+json",
                      "version": "5.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                      "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                      "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "SelfEmployment",
                    "operation": "PutAnnualSubmission",
                    "method": "PUT",
                    "acceptHeader": "application/vnd.hmrc.5.0+json",
                    "version": "5.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-employment-business-api/5.0",
                    "pathTemplate": "/individuals/business/self-employment/{nino}/{businessId}/annual/{taxYear}",
                    "path": "/individuals/business/self-employment/WL254177A/X4IS27198436836/annual/2025-26"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 319
        }
      }
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/annual/{taxYear} returns NOT_FOUND as a controlled HMRC error",
      "subtitle": "HMRC Scenario: NOT_FOUND. Simulates the scenario where no data is found.",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:50:12.460810Z",
      "durationMs": 152,
      "steps": [
        {
          "message": "Expected HMRC to return a controlled error.",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "stage": "Annual submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "NOT_FOUND"
          },
          "body": {
            "adjustments": {
              "includedNonTaxableProfits": 12.34,
              "basisAdjustment": 4.56
            },
            "allowances": {
              "annualInvestmentAllowance": 34.56
            },
            "nonFinancials": {
              "businessDetailsChangedRecently": false
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "NOT_FOUND"
          ]
        },
        "status": {
          "scenario": "failed",
          "http": 200,
          "durationMs": 28
        }
      },
      "error": "Expected error but the request succeeded."
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/annual/{taxYear} returns WRONG_TPA_AMOUNT_SUBMITTED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: WRONG_TPA_AMOUNT_SUBMITTED. Simulates the scenario where the Transition Profit Acceleration Amount cannot be submitted without Transition Profit Amount.",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:50:12.613913Z",
      "durationMs": 161,
      "steps": [
        {
          "message": "Expected HMRC to return a controlled error.",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "stage": "Annual submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "WRONG_TPA_AMOUNT_SUBMITTED"
          },
          "body": {
            "adjustments": {
              "includedNonTaxableProfits": 12.34,
              "basisAdjustment": 4.56
            },
            "allowances": {
              "annualInvestmentAllowance": 34.56
            },
            "nonFinancials": {
              "businessDetailsChangedRecently": false
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "WRONG_TPA_AMOUNT_SUBMITTED"
          ]
        },
        "status": {
          "scenario": "failed",
          "http": 200,
          "durationMs": 30
        }
      },
      "error": "Expected error but the request succeeded."
    },
    {
      "name": "Self Employment Business API PUT /hmrc/self-employment/{nino}/{businessId}/annual/{taxYear} returns OUTSIDE_AMENDMENT_WINDOW as a controlled HMRC error",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "failed",
      "startedAtUtc": "2026-04-27T09:50:12.776886Z",
      "durationMs": 178,
      "steps": [
        {
          "message": "Expected HMRC to return a controlled error.",
          "passed": false
        }
      ],
      "data": {
        "request": {
          "stage": "Annual submission",
          "method": "PUT",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "path": "/hmrc/self-employment/WL254177A/X4IS27198436836/annual/2025-26",
          "headers": {
            "accept": "application/json",
            "authorization": "Bearer ***",
            "content-type": "application/json",
            "X-PlayPay-Trace": "1",
            "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
          },
          "body": {
            "adjustments": {
              "includedNonTaxableProfits": 12.34,
              "basisAdjustment": 4.56
            },
            "allowances": {
              "annualInvestmentAllowance": 34.56
            },
            "nonFinancials": {
              "businessDetailsChangedRecently": false
            }
          }
        },
        "apiRequests": [],
        "response": {
          "status": 200,
          "payload": [
            {
              "message": "Already submitted.",
              "idempotent": true
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "OUTSIDE_AMENDMENT_WINDOW",
            "RULE_OUTSIDE_AMENDMENT_WINDOW"
          ]
        },
        "status": {
          "scenario": "failed",
          "http": 200,
          "durationMs": 34
        }
      },
      "error": "Expected error but the request succeeded."
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns NO_INCOME_SUBMISSIONS_EXIST as a controlled HMRC error",
      "subtitle": "HMRC Scenario: NO_INCOME_SUBMISSIONS_EXIST. Simulates the scenario where no income submissions exist for the tax year.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:12.956822Z",
      "durationMs": 352,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: NO_INCOME_SUBMISSIONS_EXIST.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched NO_INCOME_SUBMISSIONS_EXIST.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebf41ee3a44d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "NO_INCOME_SUBMISSIONS_EXIST",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NO_INCOME_SUBMISSIONS_EXIST"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "ac937804-cf35-43d7-b3af-e00cbf712f80",
              "payload": {
                "code": "RULE_NO_INCOME_SUBMISSIONS_EXIST",
                "message": "No income submissions exist for the tax year"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "ac937804-cf35-43d7-b3af-e00cbf712f80",
              "body": {
                "code": "RULE_NO_INCOME_SUBMISSIONS_EXIST",
                "message": "No income submissions exist for the tax year"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "NO_INCOME_SUBMISSIONS_EXIST"
          ],
          "matchedCodeFragment": "NO_INCOME_SUBMISSIONS_EXIST",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebf41ee3a44d",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "NO_INCOME_SUBMISSIONS_EXIST",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "NO_INCOME_SUBMISSIONS_EXIST"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 210
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns FINAL_DECLARATION_RECEIVED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: FINAL_DECLARATION_RECEIVED. Simulates the scenario where a final declaration has already been received.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:13.314005Z",
      "durationMs": 363,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: FINAL_DECLARATION_RECEIVED.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched FINAL_DECLARATION_RECEIVED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebf65d225395",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "FINAL_DECLARATION_RECEIVED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "FINAL_DECLARATION_RECEIVED"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "70c792ba-bb02-48bd-8f19-e10c4df2f103",
              "payload": {
                "code": "RULE_FINAL_DECLARATION_RECEIVED",
                "message": "Final declaration has already been received"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "70c792ba-bb02-48bd-8f19-e10c4df2f103",
              "body": {
                "code": "RULE_FINAL_DECLARATION_RECEIVED",
                "message": "Final declaration has already been received"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "FINAL_DECLARATION_RECEIVED"
          ],
          "matchedCodeFragment": "FINAL_DECLARATION_RECEIVED",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebf65d225395",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "FINAL_DECLARATION_RECEIVED",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "FINAL_DECLARATION_RECEIVED"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 231
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns INCOME_SOURCES_CHANGED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: INCOME_SOURCES_CHANGED. Simulates the scenario where income sources data has changed.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:13.681624Z",
      "durationMs": 339,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: INCOME_SOURCES_CHANGED.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched INCOME_SOURCES_CHANGED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebf89d6bb34c",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "INCOME_SOURCES_CHANGED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "INCOME_SOURCES_CHANGED"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "af632302-263b-4263-bdb5-cf835b55709a",
              "payload": {
                "code": "RULE_INCOME_SOURCES_CHANGED",
                "message": "Income sources data has changed. Trigger a new calculation"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "af632302-263b-4263-bdb5-cf835b55709a",
              "body": {
                "code": "RULE_INCOME_SOURCES_CHANGED",
                "message": "Income sources data has changed. Trigger a new calculation"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "INCOME_SOURCES_CHANGED"
          ],
          "matchedCodeFragment": "INCOME_SOURCES_CHANGED",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebf89d6bb34c",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "INCOME_SOURCES_CHANGED",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "INCOME_SOURCES_CHANGED"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 203
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns RECENT_SUBMISSIONS_EXIST as a controlled HMRC error",
      "subtitle": "HMRC Scenario: RECENT_SUBMISSIONS_EXIST. Simulates the scenario where more recent submissions exist.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:14.024140Z",
      "durationMs": 345,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: RECENT_SUBMISSIONS_EXIST.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched RECENT_SUBMISSIONS_EXIST.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebfabd610747",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "RECENT_SUBMISSIONS_EXIST",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "RECENT_SUBMISSIONS_EXIST"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "3f904f88-33d4-4c4d-9d73-9f4bd5b9c765",
              "payload": {
                "code": "RULE_RECENT_SUBMISSIONS_EXIST",
                "message": "More recent submissions exist. Trigger a new calculation"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "3f904f88-33d4-4c4d-9d73-9f4bd5b9c765",
              "body": {
                "code": "RULE_RECENT_SUBMISSIONS_EXIST",
                "message": "More recent submissions exist. Trigger a new calculation"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "RECENT_SUBMISSIONS_EXIST"
          ],
          "matchedCodeFragment": "RECENT_SUBMISSIONS_EXIST",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebfabd610747",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "RECENT_SUBMISSIONS_EXIST",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "RECENT_SUBMISSIONS_EXIST"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 208
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns RESIDENCY_CHANGED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: RESIDENCY_CHANGED. Simulates the scenario where residency has changed.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:14.373823Z",
      "durationMs": 300,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: RESIDENCY_CHANGED.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched RESIDENCY_CHANGED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebfce9b8b396",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "RESIDENCY_CHANGED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "RESIDENCY_CHANGED"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "bfab0606-0416-443b-96fe-581ff12c9832",
              "payload": {
                "code": "RULE_RESIDENCY_CHANGED",
                "message": "Residency has changed. Trigger a new calculation"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "bfab0606-0416-443b-96fe-581ff12c9832",
              "body": {
                "code": "RULE_RESIDENCY_CHANGED",
                "message": "Residency has changed. Trigger a new calculation"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "RESIDENCY_CHANGED"
          ],
          "matchedCodeFragment": "RESIDENCY_CHANGED",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebfce9b8b396",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "RESIDENCY_CHANGED",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "RESIDENCY_CHANGED"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 165
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns CALCULATION_IN_PROGRESS as a controlled HMRC error",
      "subtitle": "HMRC Scenario: CALCULATION_IN_PROGRESS. Simulates the scenario where a calculation is already in progress.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:14.678660Z",
      "durationMs": 403,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: CALCULATION_IN_PROGRESS.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched CALCULATION_IN_PROGRESS.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cebfedec4b3ea",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "CALCULATION_IN_PROGRESS",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "CALCULATION_IN_PROGRESS"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "822433d6-9c00-49c3-ae96-c4939735d5bc",
              "payload": {
                "code": "RULE_CALCULATION_IN_PROGRESS",
                "message": "A calculation is in progress. Please wait before triggering a new calculation"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "822433d6-9c00-49c3-ae96-c4939735d5bc",
              "body": {
                "code": "RULE_CALCULATION_IN_PROGRESS",
                "message": "A calculation is in progress. Please wait before triggering a new calculation"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "CALCULATION_IN_PROGRESS"
          ],
          "matchedCodeFragment": "CALCULATION_IN_PROGRESS",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cebfedec4b3ea",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "CALCULATION_IN_PROGRESS",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "CALCULATION_IN_PROGRESS"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 260
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns BUSINESS_VALIDATION_FAILURE as a controlled HMRC error",
      "subtitle": "HMRC Scenario: BUSINESS_VALIDATION_FAILURE. Simulates the scenario where there is a generic business validation rule failure.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:15.086918Z",
      "durationMs": 300,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: BUSINESS_VALIDATION_FAILURE.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched BUSINESS_VALIDATION_FAILURE.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec0158b8b0ec",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "BUSINESS_VALIDATION_FAILURE",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "BUSINESS_VALIDATION_FAILURE"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "95fd56f5-1288-4b37-91aa-86fd02f511f2",
              "payload": {
                "code": "RULE_BUSINESS_VALIDATION_FAILURE",
                "message": "Business validation rule failures"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "95fd56f5-1288-4b37-91aa-86fd02f511f2",
              "body": {
                "code": "RULE_BUSINESS_VALIDATION_FAILURE",
                "message": "Business validation rule failures"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "BUSINESS_VALIDATION_FAILURE"
          ],
          "matchedCodeFragment": "BUSINESS_VALIDATION_FAILURE",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cec0158b8b0ec",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "BUSINESS_VALIDATION_FAILURE",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "BUSINESS_VALIDATION_FAILURE"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 168
        }
      }
    },
    {
      "name": "Individual Calculations API POST /hmrc/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/intent-to-finalise returns TAX_YEAR_NOT_ENDED as a controlled HMRC error",
      "subtitle": "HMRC Scenario: TAX_YEAR_NOT_ENDED. Simulates the scenario where a trigger for a final declaration is attempted before the tax year has ended.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:15.392355Z",
      "durationMs": 277,
      "steps": [
        {
          "message": "Scenario request forwarded Gov-Test-Scenario: TAX_YEAR_NOT_ENDED.",
          "passed": true
        },
        {
          "message": "Controlled HMRC error matched TAX_YEAR_NOT_ENDED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
          "headers": {
            "accept": "application/vnd.hmrc.8.0+json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec033abf26aa",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "0",
            "gov-test-scenario": "TAX_YEAR_NOT_ENDED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.8.0+json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "TAX_YEAR_NOT_ENDED"
              },
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "cc38fdfc-9864-4331-885e-94b296e44d7d",
              "payload": {
                "code": "RULE_TAX_YEAR_NOT_ENDED",
                "message": "The specified tax year has not yet ended"
              }
            }
          }
        ],
        "response": {
          "status": 400,
          "payload": [
            {
              "error": "HMRC tax calculation trigger rejected.",
              "hmrcStatus": 400,
              "correlationId": "cc38fdfc-9864-4331-885e-94b296e44d7d",
              "body": {
                "code": "RULE_TAX_YEAR_NOT_ENDED",
                "message": "The specified tax year has not yet ended"
              }
            }
          ]
        },
        "details": {
          "expectedCodeFragments": [
            "TAX_YEAR_NOT_ENDED"
          ],
          "matchedCodeFragment": "TAX_YEAR_NOT_ENDED",
          "errorPayload": {
            "type": "HmrcWorkerException",
            "message": {
              "hmrcApi": {
                "apiName": "IndividualCalculations",
                "operation": "TriggerTaxCalculation",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.8.0+json",
                "version": "8.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
              },
              "request": {
                "method": "POST",
                "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "path": "/hmrc/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                "headers": {
                  "accept": "application/vnd.hmrc.8.0+json",
                  "accept-encoding": "gzip, br",
                  "authorization": "Bearer eyJhbGciOiJ...K8",
                  "cf-connecting-ip": "209.x.x.x",
                  "cf-ipcountry": "GB",
                  "cf-ray": "9f2cec033abf26aa",
                  "cf-visitor": "{\"scheme\":\"https\"}",
                  "connection": "Keep-Alive",
                  "content-length": "0",
                  "gov-test-scenario": "TAX_YEAR_NOT_ENDED",
                  "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
                  "user-agent": "Dart/3.9 (dart:io)",
                  "x-forwarded-proto": "https",
                  "x-playpay-trace": "1",
                  "x-real-ip": "209.x.x.x"
                }
              },
              "apiRequests": [
                {
                  "relayed-request": {
                    "method": "POST",
                    "url": "https://test-api.service.hmrc.gov.uk/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise",
                    "headers": {
                      "authorization": "Bearer 403be4fa2d5...c3",
                      "accept": "application/vnd.hmrc.8.0+json",
                      "gov-client-connection-method": "MOBILE_APP_DIRECT",
                      "gov-client-device-id": "playpay-bdd...ce",
                      "gov-client-timezone": "UTC+00:00",
                      "gov-client-user-ids": "os=playpay-bdd...ke",
                      "gov-uk-originator-id": "playpay-bdd...ke",
                      "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                      "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                      "gov-vendor-product-name": "PlayPay",
                      "gov-vendor-public-ip": "198.x.x.x",
                      "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                      "Gov-Test-Scenario": "TAX_YEAR_NOT_ENDED"
                    },
                    "hmrcApi": {
                      "apiName": "IndividualCalculations",
                      "operation": "TriggerTaxCalculation",
                      "method": "POST",
                      "acceptHeader": "application/vnd.hmrc.8.0+json",
                      "version": "8.0",
                      "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                      "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                      "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                    }
                  }
                }
              ],
              "response": {
                "payload": {
                  "hmrcApi": {
                    "apiName": "IndividualCalculations",
                    "operation": "TriggerTaxCalculation",
                    "method": "POST",
                    "acceptHeader": "application/vnd.hmrc.8.0+json",
                    "version": "8.0",
                    "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-calculations-api/8.0/oas/page",
                    "pathTemplate": "/individuals/calculations/{nino}/self-assessment/{taxYear}/trigger/{calculationType}",
                    "path": "/individuals/calculations/WL254177A/self-assessment/2025-26/trigger/intent-to-finalise"
                  }
                }
              }
            }
          }
        },
        "status": {
          "scenario": "passed",
          "http": 400,
          "durationMs": 148
        }
      }
    },
    {
      "name": "Individuals Charges API POST /hmrc/annual-data returns TAX_YEAR_NOT_SUPPORTED for the high-income-child-benefit-charge item",
      "subtitle": "HMRC Scenario: TAX_YEAR_NOT_SUPPORTED. Simulates the scenario where the tax year is not supported.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:15.673894Z",
      "durationMs": 408,
      "steps": [
        {
          "message": "Individuals Charges API item returned the controlled HMRC error TAX_YEAR_NOT_SUPPORTED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec050a64eb15",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "304",
            "content-type": "application/json",
            "gov-test-scenario": "TAX_YEAR_NOT_SUPPORTED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "high-income-child-benefit-charge",
                "label": "High Income Child Benefit Charge",
                "method": "PUT",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
                "payload": {
                  "amountOfChildBenefitReceived": 1111.22,
                  "numberOfChildren": 2
                }
              }
            ],
            "gov-test-scenario": "TAX_YEAR_NOT_SUPPORTED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "TAX_YEAR_NOT_SUPPORTED"
              },
              "body": {
                "amountOfChildBenefitReceived": 1111.22,
                "numberOfChildren": 2
              },
              "hmrcApi": {
                "apiName": "IndividualsCharges",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-charges-api/3.0",
                "pathTemplate": "/individuals/charges/high-income-child-benefit/{nino}/{taxYear}",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "28743d17-d081-4e48-a8e5-bb373d49ea22",
              "payload": {
                "code": "RULE_TAX_YEAR_NOT_SUPPORTED",
                "message": "The tax year specified does not lie within the supported range"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_TAX_YEAR_NOT_SUPPORTED",
              "message": "The tax year specified does not lie within the supported range"
            }
          ]
        },
        "details": {
          "scenario": "TAX_YEAR_NOT_SUPPORTED",
          "workerStatusCode": 207,
          "itemCode": "high-income-child-benefit-charge",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 275
        }
      }
    },
    {
      "name": "Individuals Charges API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the high-income-child-benefit-charge item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:16.084933Z",
      "durationMs": 601,
      "steps": [
        {
          "message": "Individuals Charges API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec07a8eef469",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "306",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "high-income-child-benefit-charge",
                "label": "High Income Child Benefit Charge",
                "method": "PUT",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
                "payload": {
                  "amountOfChildBenefitReceived": 1111.22,
                  "numberOfChildren": 2
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "amountOfChildBenefitReceived": 1111.22,
                "numberOfChildren": 2
              },
              "hmrcApi": {
                "apiName": "IndividualsCharges",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-charges-api/3.0",
                "pathTemplate": "/individuals/charges/high-income-child-benefit/{nino}/{taxYear}",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "d126dec1-2ab7-4f96-ab58-9e00f7a90084",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "high-income-child-benefit-charge",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 469
        }
      }
    },
    {
      "name": "Individuals Charges API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the high-income-child-benefit-charge item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:16.687551Z",
      "durationMs": 411,
      "steps": [
        {
          "message": "Individuals Charges API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec0b5fd6a122",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "309",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "high-income-child-benefit-charge",
                "label": "High Income Child Benefit Charge",
                "method": "PUT",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
                "payload": {
                  "amountOfChildBenefitReceived": 1111.22,
                  "numberOfChildren": 2
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "amountOfChildBenefitReceived": 1111.22,
                "numberOfChildren": 2
              },
              "hmrcApi": {
                "apiName": "IndividualsCharges",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-charges-api/3.0",
                "pathTemplate": "/individuals/charges/high-income-child-benefit/{nino}/{taxYear}",
                "path": "/individuals/charges/high-income-child-benefit/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "6f377a34-87df-44db-9e80-ac395d5fe2d4",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "high-income-child-benefit-charge",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 280
        }
      }
    },
    {
      "name": "Individuals Disclosures API POST /hmrc/annual-data returns DECEASED_RECIPIENT for the marriage-allowance item",
      "subtitle": "HMRC Scenario: DECEASED_RECIPIENT. Simulates the scenario where the recipient has died.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:17.102083Z",
      "durationMs": 506,
      "steps": [
        {
          "message": "Individuals Disclosures API item returned the controlled HMRC error DECEASED_RECIPIENT.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec0dfcef3607",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "366",
            "content-type": "application/json",
            "gov-test-scenario": "DECEASED_RECIPIENT",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "marriage-allowance",
                "label": "Marriage Allowance",
                "method": "POST",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A",
                "payload": {
                  "spouseOrCivilPartnerNino": "EK905549B",
                  "spouseOrCivilPartnerFirstName": "Suite",
                  "spouseOrCivilPartnerSurname": "Smoke",
                  "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
                }
              }
            ],
            "gov-test-scenario": "DECEASED_RECIPIENT"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disclosures/marriage-allowance/WL254177A",
              "path": "/individuals/disclosures/marriage-allowance/WL254177A",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "DECEASED_RECIPIENT"
              },
              "body": {
                "spouseOrCivilPartnerNino": "EK905549B",
                "spouseOrCivilPartnerFirstName": "Suite",
                "spouseOrCivilPartnerSurname": "Smoke",
                "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
              },
              "hmrcApi": {
                "apiName": "IndividualsDisclosures",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-disclosures-api/2.0/oas/page",
                "pathTemplate": "/individuals/disclosures/{nino}/{taxYear}",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "e3e6002a-162f-40ae-87d9-c6861b3f8551",
              "payload": {
                "code": "RULE_DECEASED_RECIPIENT",
                "message": "The provided spouse or civil partner is deceased"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_DECEASED_RECIPIENT",
              "message": "The provided spouse or civil partner is deceased"
            }
          ]
        },
        "details": {
          "scenario": "DECEASED_RECIPIENT",
          "workerStatusCode": 207,
          "itemCode": "marriage-allowance",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 374
        }
      }
    },
    {
      "name": "Individuals Disclosures API POST /hmrc/annual-data returns CLAIM_ALREADY_EXISTS for the marriage-allowance item",
      "subtitle": "HMRC Scenario: CLAIM_ALREADY_EXISTS. Simulates the scenario where the claim already exists.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:17.609875Z",
      "durationMs": 512,
      "steps": [
        {
          "message": "Individuals Disclosures API item returned the controlled HMRC error ACTIVE_MARRIAGE_ALLOWANCE_CLAIM.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec111ba30745",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "368",
            "content-type": "application/json",
            "gov-test-scenario": "CLAIM_ALREADY_EXISTS",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "marriage-allowance",
                "label": "Marriage Allowance",
                "method": "POST",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A",
                "payload": {
                  "spouseOrCivilPartnerNino": "EK905549B",
                  "spouseOrCivilPartnerFirstName": "Suite",
                  "spouseOrCivilPartnerSurname": "Smoke",
                  "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
                }
              }
            ],
            "gov-test-scenario": "CLAIM_ALREADY_EXISTS"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disclosures/marriage-allowance/WL254177A",
              "path": "/individuals/disclosures/marriage-allowance/WL254177A",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "CLAIM_ALREADY_EXISTS"
              },
              "body": {
                "spouseOrCivilPartnerNino": "EK905549B",
                "spouseOrCivilPartnerFirstName": "Suite",
                "spouseOrCivilPartnerSurname": "Smoke",
                "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
              },
              "hmrcApi": {
                "apiName": "IndividualsDisclosures",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-disclosures-api/2.0/oas/page",
                "pathTemplate": "/individuals/disclosures/{nino}/{taxYear}",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "3f2ad3f0-e656-4fce-9ae3-ad56a1ea17f0",
              "payload": {
                "code": "RULE_ACTIVE_MARRIAGE_ALLOWANCE_CLAIM",
                "message": "Marriage Allowance has already been transferred to a spouse or civil partner"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_ACTIVE_MARRIAGE_ALLOWANCE_CLAIM",
              "message": "Marriage Allowance has already been transferred to a spouse or civil partner"
            }
          ]
        },
        "details": {
          "scenario": "CLAIM_ALREADY_EXISTS",
          "workerStatusCode": 207,
          "itemCode": "marriage-allowance",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 381
        }
      }
    },
    {
      "name": "Individuals Disclosures API POST /hmrc/annual-data returns INVALID_REQUEST for the marriage-allowance item",
      "subtitle": "HMRC Scenario: INVALID_REQUEST. Simulates the scenario where the request body is invalid for the endpoint.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:18.125144Z",
      "durationMs": 510,
      "steps": [
        {
          "message": "Individuals Disclosures API item returned the controlled HMRC error INVALID_REQUEST.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec14595aeb1d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "363",
            "content-type": "application/json",
            "gov-test-scenario": "INVALID_REQUEST",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "marriage-allowance",
                "label": "Marriage Allowance",
                "method": "POST",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A",
                "payload": {
                  "spouseOrCivilPartnerNino": "EK905549B",
                  "spouseOrCivilPartnerFirstName": "Suite",
                  "spouseOrCivilPartnerSurname": "Smoke",
                  "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
                }
              }
            ],
            "gov-test-scenario": "INVALID_REQUEST"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disclosures/marriage-allowance/WL254177A",
              "path": "/individuals/disclosures/marriage-allowance/WL254177A",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "INVALID_REQUEST"
              },
              "body": {
                "spouseOrCivilPartnerNino": "EK905549B",
                "spouseOrCivilPartnerFirstName": "Suite",
                "spouseOrCivilPartnerSurname": "Smoke",
                "spouseOrCivilPartnerDateOfBirth": "1980-01-01"
              },
              "hmrcApi": {
                "apiName": "IndividualsDisclosures",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-disclosures-api/2.0/oas/page",
                "pathTemplate": "/individuals/disclosures/{nino}/{taxYear}",
                "path": "/individuals/disclosures/marriage-allowance/WL254177A"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "8e16020c-499d-4d41-86d6-978ca397a50e",
              "payload": {
                "code": "RULE_INVALID_REQUEST",
                "message": "The NINO supplied is invalid"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_INVALID_REQUEST",
              "message": "The NINO supplied is invalid"
            }
          ]
        },
        "details": {
          "scenario": "INVALID_REQUEST",
          "workerStatusCode": 207,
          "itemCode": "marriage-allowance",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 374
        }
      }
    },
    {
      "name": "Individuals Dividends Income API POST /hmrc/annual-data returns NOT_FOUND for the dividends-uk item",
      "subtitle": "HMRC Scenario: NOT_FOUND. Simulates the scenario where no data is found.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:18.638248Z",
      "durationMs": 611,
      "steps": [
        {
          "message": "Individuals Dividends Income API item returned the controlled HMRC error NOT_FOUND.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec179c8eb3cf",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "222",
            "content-type": "application/json",
            "gov-test-scenario": "NOT_FOUND",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "dividends-uk",
                "label": "UK dividends",
                "method": "PUT",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
                "payload": {
                  "ukDividends": 45.67,
                  "otherUkDividends": 12.34
                }
              }
            ],
            "gov-test-scenario": "NOT_FOUND"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/dividends-income/uk/WL254177A/2025-26",
              "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NOT_FOUND"
              },
              "body": {
                "ukDividends": 45.67,
                "otherUkDividends": 12.34
              },
              "hmrcApi": {
                "apiName": "IndividualsDividendsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-dividends-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/dividends-income/{nino}/{taxYear}",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "956807df-872a-4040-99a4-682e3c9f93b5",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "MATCHING_RESOURCE_NOT_FOUND",
              "message": "Matching resource not found"
            }
          ]
        },
        "details": {
          "scenario": "NOT_FOUND",
          "workerStatusCode": 207,
          "itemCode": "dividends-uk",
          "itemStatusCode": 404
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 476
        }
      }
    },
    {
      "name": "Individuals Dividends Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the dividends-uk item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:19.252417Z",
      "durationMs": 519,
      "steps": [
        {
          "message": "Individuals Dividends Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec1b6e56eb1d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "237",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "dividends-uk",
                "label": "UK dividends",
                "method": "PUT",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
                "payload": {
                  "ukDividends": 45.67,
                  "otherUkDividends": 12.34
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/dividends-income/uk/WL254177A/2025-26",
              "path": "/individuals/dividends-income/uk/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "ukDividends": 45.67,
                "otherUkDividends": 12.34
              },
              "hmrcApi": {
                "apiName": "IndividualsDividendsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-dividends-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/dividends-income/{nino}/{taxYear}",
                "path": "/individuals/dividends-income/uk/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "afe8396c-5936-4a24-ab0d-f81ae446e955",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "dividends-uk",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 381
        }
      }
    },
    {
      "name": "Individuals Dividends Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the dividends-uk item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:50:19.773902Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "HMRC sandbox currently rejects REQUEST_CANNOT_BE_FULFILLED for UK dividends with RULE_INCORRECT_GOV_TEST_SCENARIO, despite the published spec, so this live check is skipped.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC sandbox currently rejects REQUEST_CANNOT_BE_FULFILLED for UK dividends with RULE_INCORRECT_GOV_TEST_SCENARIO, despite the published spec, so this live check is skipped."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Individuals Employments Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the employment-income item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:19.775273Z",
      "durationMs": 499,
      "steps": [
        {
          "message": "Individuals Employments Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec1ebfcb89d9",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "354",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "employment-income",
                "label": "Employment income",
                "method": "POST",
                "path": "/individuals/employments-income/WL254177A/2025-26",
                "payload": {
                  "employerRef": "123/AB56797",
                  "employerName": "Employer Name Ltd.",
                  "startDate": "2019-01-01",
                  "payrollId": "YDIAHPcYFQbOXLCKQ",
                  "occupationalPension": false
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/employments-income/WL254177A/2025-26",
              "path": "/individuals/employments-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "employerRef": "123/AB56797",
                "employerName": "Employer Name Ltd.",
                "startDate": "2019-01-01",
                "payrollId": "YDIAHPcYFQbOXLCKQ",
                "occupationalPension": false
              },
              "hmrcApi": {
                "apiName": "IndividualsEmploymentsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-employments-income-api/2.0",
                "pathTemplate": "/individuals/employments-income/{nino}/{taxYear}",
                "path": "/individuals/employments-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "40764666-feda-4d99-8ce0-dbe990325d6c",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "employment-income",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 362
        }
      }
    },
    {
      "name": "Individuals Employments Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the employment-income item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:20.277281Z",
      "durationMs": 483,
      "steps": [
        {
          "message": "Individuals Employments Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec21d9e8a14b",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "351",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "employment-income",
                "label": "Employment income",
                "method": "POST",
                "path": "/individuals/employments-income/WL254177A/2025-26",
                "payload": {
                  "employerRef": "123/AB56797",
                  "employerName": "Employer Name Ltd.",
                  "startDate": "2019-01-01",
                  "payrollId": "YDIAHPcYFQbOXLCKQ",
                  "occupationalPension": false
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/employments-income/WL254177A/2025-26",
              "path": "/individuals/employments-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "employerRef": "123/AB56797",
                "employerName": "Employer Name Ltd.",
                "startDate": "2019-01-01",
                "payrollId": "YDIAHPcYFQbOXLCKQ",
                "occupationalPension": false
              },
              "hmrcApi": {
                "apiName": "IndividualsEmploymentsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-employments-income-api/2.0",
                "pathTemplate": "/individuals/employments-income/{nino}/{taxYear}",
                "path": "/individuals/employments-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "79280654-27ef-4ef1-aa43-06748602e646",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "employment-income",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 340
        }
      }
    },
    {
      "name": "Individuals Pensions Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the pensions-income item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:20.761017Z",
      "durationMs": 546,
      "steps": [
        {
          "message": "Individuals Pensions Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec24ce7e38c1",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "687",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "pensions-income",
                "label": "Taxable pension income",
                "method": "PUT",
                "path": "/individuals/pensions-income/WL254177A/2025-26",
                "payload": {
                  "foreignPensions": [
                    {
                      "countryCode": "FRA",
                      "amountBeforeTax": 1999.99,
                      "taxTakenOff": 1999.99,
                      "specialWithholdingTax": 1999.99,
                      "foreignTaxCreditRelief": false,
                      "taxableAmount": 1999.99
                    }
                  ],
                  "overseasPensionContributions": [
                    {
                      "customerReference": "PENSIONINCOME245",
                      "exemptEmployersPensionContribs": 1999.99,
                      "migrantMemReliefQopsRefNo": "QOPS000000",
                      "dblTaxationRelief": 1999.99,
                      "dblTaxationCountryCode": "FRA",
                      "dblTaxationArticle": "AB3211-1",
                      "dblTaxationTreaty": "MUNICH",
                      "sf74reference": "SF74-123456"
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/pensions-income/WL254177A/2025-26",
              "path": "/individuals/pensions-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "foreignPensions": [
                  {
                    "countryCode": "FRA",
                    "amountBeforeTax": 1999.99,
                    "taxTakenOff": 1999.99,
                    "specialWithholdingTax": 1999.99,
                    "foreignTaxCreditRelief": false,
                    "taxableAmount": 1999.99
                  }
                ],
                "overseasPensionContributions": [
                  {
                    "customerReference": "PENSIONINCOME245",
                    "exemptEmployersPensionContribs": 1999.99,
                    "migrantMemReliefQopsRefNo": "QOPS000000",
                    "dblTaxationRelief": 1999.99,
                    "dblTaxationCountryCode": "FRA",
                    "dblTaxationArticle": "AB3211-1",
                    "dblTaxationTreaty": "MUNICH",
                    "sf74reference": "SF74-123456"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsPensionsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-pensions-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/pensions-income/{nino}/{taxYear}",
                "path": "/individuals/pensions-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "21a8febf-8fd3-4523-a57e-e34c3143845b",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "pensions-income",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 415
        }
      }
    },
    {
      "name": "Individuals Pensions Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the pensions-income item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:21.309854Z",
      "durationMs": 601,
      "steps": [
        {
          "message": "Individuals Pensions Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec285860074a",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "684",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "pensions-income",
                "label": "Taxable pension income",
                "method": "PUT",
                "path": "/individuals/pensions-income/WL254177A/2025-26",
                "payload": {
                  "foreignPensions": [
                    {
                      "countryCode": "FRA",
                      "amountBeforeTax": 1999.99,
                      "taxTakenOff": 1999.99,
                      "specialWithholdingTax": 1999.99,
                      "foreignTaxCreditRelief": false,
                      "taxableAmount": 1999.99
                    }
                  ],
                  "overseasPensionContributions": [
                    {
                      "customerReference": "PENSIONINCOME245",
                      "exemptEmployersPensionContribs": 1999.99,
                      "migrantMemReliefQopsRefNo": "QOPS000000",
                      "dblTaxationRelief": 1999.99,
                      "dblTaxationCountryCode": "FRA",
                      "dblTaxationArticle": "AB3211-1",
                      "dblTaxationTreaty": "MUNICH",
                      "sf74reference": "SF74-123456"
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/pensions-income/WL254177A/2025-26",
              "path": "/individuals/pensions-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "foreignPensions": [
                  {
                    "countryCode": "FRA",
                    "amountBeforeTax": 1999.99,
                    "taxTakenOff": 1999.99,
                    "specialWithholdingTax": 1999.99,
                    "foreignTaxCreditRelief": false,
                    "taxableAmount": 1999.99
                  }
                ],
                "overseasPensionContributions": [
                  {
                    "customerReference": "PENSIONINCOME245",
                    "exemptEmployersPensionContribs": 1999.99,
                    "migrantMemReliefQopsRefNo": "QOPS000000",
                    "dblTaxationRelief": 1999.99,
                    "dblTaxationCountryCode": "FRA",
                    "dblTaxationArticle": "AB3211-1",
                    "dblTaxationTreaty": "MUNICH",
                    "sf74reference": "SF74-123456"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsPensionsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-pensions-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/pensions-income/{nino}/{taxYear}",
                "path": "/individuals/pensions-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "8ab35c7c-826e-47e0-b9f9-b0648eab372b",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "pensions-income",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 460
        }
      }
    },
    {
      "name": "Individuals Reliefs API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the pensions-relief item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:21.913843Z",
      "durationMs": 510,
      "steps": [
        {
          "message": "Individuals Reliefs API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec2c089fb119",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "401",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "pensions-relief",
                "label": "Pension relief",
                "method": "PUT",
                "path": "/individuals/reliefs/pensions/WL254177A/2025-26",
                "payload": {
                  "pensionReliefs": {
                    "regularPensionContributions": 23.45,
                    "oneOffPensionContributionsPaid": 0,
                    "retirementAnnuityPayments": 0,
                    "paymentToEmployersSchemeNoTaxRelief": 0,
                    "overseasPensionSchemeContributions": 0
                  }
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/reliefs/pensions/WL254177A/2025-26",
              "path": "/individuals/reliefs/pensions/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "pensionReliefs": {
                  "regularPensionContributions": 23.45,
                  "oneOffPensionContributionsPaid": 0,
                  "retirementAnnuityPayments": 0,
                  "paymentToEmployersSchemeNoTaxRelief": 0,
                  "overseasPensionSchemeContributions": 0
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsReliefs",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-reliefs-api/3.0/oas/page",
                "pathTemplate": "/individuals/reliefs/pensions/{nino}/{taxYear}",
                "path": "/individuals/reliefs/pensions/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "1448bc9a-a8d7-4ce7-98b9-37136ac6233e",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "pensions-relief",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 374
        }
      }
    },
    {
      "name": "Individuals Savings Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the savings-other item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:22.426990Z",
      "durationMs": 509,
      "steps": [
        {
          "message": "Individuals Savings Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec2f4e3f2b11",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "457",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "savings-other",
                "label": "Other savings interest",
                "method": "PUT",
                "path": "/individuals/savings-income/other/WL254177A/2025-26",
                "payload": {
                  "securities": {
                    "taxTakenOff": 100.12,
                    "grossAmount": 1455.23,
                    "netAmount": 1355.11
                  },
                  "foreignInterest": [
                    {
                      "amountBeforeTax": 1232.67,
                      "countryCode": "DEU",
                      "taxTakenOff": 12.45,
                      "specialWithholdingTax": 14.78,
                      "taxableAmount": 1032.67,
                      "foreignTaxCreditRelief": true
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/savings-income/other/WL254177A/2025-26",
              "path": "/individuals/savings-income/other/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "securities": {
                  "taxTakenOff": 100.12,
                  "grossAmount": 1455.23,
                  "netAmount": 1355.11
                },
                "foreignInterest": [
                  {
                    "amountBeforeTax": 1232.67,
                    "countryCode": "DEU",
                    "taxTakenOff": 12.45,
                    "specialWithholdingTax": 14.78,
                    "taxableAmount": 1032.67,
                    "foreignTaxCreditRelief": true
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsSavingsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-savings-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/savings-income/other/{nino}/{taxYear}",
                "path": "/individuals/savings-income/other/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "551b5c76-a51b-47cf-a189-504b7d611156",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "savings-other",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 373
        }
      }
    },
    {
      "name": "Individuals Savings Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the savings-other item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:22.939314Z",
      "durationMs": 620,
      "steps": [
        {
          "message": "Individuals Savings Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec327e45b12e",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "454",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "savings-other",
                "label": "Other savings interest",
                "method": "PUT",
                "path": "/individuals/savings-income/other/WL254177A/2025-26",
                "payload": {
                  "securities": {
                    "taxTakenOff": 100.12,
                    "grossAmount": 1455.23,
                    "netAmount": 1355.11
                  },
                  "foreignInterest": [
                    {
                      "amountBeforeTax": 1232.67,
                      "countryCode": "DEU",
                      "taxTakenOff": 12.45,
                      "specialWithholdingTax": 14.78,
                      "taxableAmount": 1032.67,
                      "foreignTaxCreditRelief": true
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/savings-income/other/WL254177A/2025-26",
              "path": "/individuals/savings-income/other/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "securities": {
                  "taxTakenOff": 100.12,
                  "grossAmount": 1455.23,
                  "netAmount": 1355.11
                },
                "foreignInterest": [
                  {
                    "amountBeforeTax": 1232.67,
                    "countryCode": "DEU",
                    "taxTakenOff": 12.45,
                    "specialWithholdingTax": 14.78,
                    "taxableAmount": 1032.67,
                    "foreignTaxCreditRelief": true
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsSavingsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-savings-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/savings-income/other/{nino}/{taxYear}",
                "path": "/individuals/savings-income/other/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "31610e20-ad0b-49ac-b456-680e8aba7f03",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "savings-other",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 484
        }
      }
    },
    {
      "name": "Individuals State Benefits API POST /hmrc/annual-data returns BENEFIT_TYPE_EXISTS for the state-benefits item",
      "subtitle": "HMRC Scenario: BENEFIT_TYPE_EXISTS. Simulates the scenario where the benefit type already exists.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:23.561888Z",
      "durationMs": 501,
      "steps": [
        {
          "message": "Individuals State Benefits API item returned the controlled HMRC error BENEFIT_TYPE_EXISTS.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec366b992718",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "277",
            "content-type": "application/json",
            "gov-test-scenario": "BENEFIT_TYPE_EXISTS",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              }
            ],
            "gov-test-scenario": "BENEFIT_TYPE_EXISTS"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "BENEFIT_TYPE_EXISTS"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "d5b25923-bcd7-40d0-9ef3-99ea5080a03d",
              "payload": {
                "code": "RULE_BENEFIT_TYPE_EXISTS",
                "message": "A benefit of this type has already been created"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_BENEFIT_TYPE_EXISTS",
              "message": "A benefit of this type has already been created"
            }
          ]
        },
        "details": {
          "scenario": "BENEFIT_TYPE_EXISTS",
          "workerStatusCode": 207,
          "itemCode": "state-benefits",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 364
        }
      }
    },
    {
      "name": "Individuals State Benefits API POST /hmrc/annual-data returns END_DATE_BEFORE_TAX_YEAR_START for the state-benefits item",
      "subtitle": "HMRC Scenario: END_DATE_BEFORE_TAX_YEAR_START. Simulates the scenario where the benefit end date is before the tax year start.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:24.065063Z",
      "durationMs": 510,
      "steps": [
        {
          "message": "Individuals State Benefits API item returned the controlled HMRC error END_DATE_BEFORE_TAX_YEAR_START.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec397c78b3cf",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "288",
            "content-type": "application/json",
            "gov-test-scenario": "END_DATE_BEFORE_TAX_YEAR_START",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              }
            ],
            "gov-test-scenario": "END_DATE_BEFORE_TAX_YEAR_START"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "END_DATE_BEFORE_TAX_YEAR_START"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "cb9a366c-84a8-47e0-b294-e6d11bf89d56",
              "payload": {
                "code": "RULE_END_DATE_BEFORE_TAX_YEAR_START",
                "message": "The end date cannot be before the tax year starts"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_END_DATE_BEFORE_TAX_YEAR_START",
              "message": "The end date cannot be before the tax year starts"
            }
          ]
        },
        "details": {
          "scenario": "END_DATE_BEFORE_TAX_YEAR_START",
          "workerStatusCode": 207,
          "itemCode": "state-benefits",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 379
        }
      }
    },
    {
      "name": "Individuals State Benefits API POST /hmrc/annual-data returns START_DATE_AFTER_TAX_YEAR_END for the state-benefits item",
      "subtitle": "HMRC Scenario: START_DATE_AFTER_TAX_YEAR_END. Simulates the scenario where the benefit start date is after the tax year end.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:24.577392Z",
      "durationMs": 423,
      "steps": [
        {
          "message": "Individuals State Benefits API item returned the controlled HMRC error START_DATE_AFTER_TAX_YEAR_END.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec3cbe30b0dd",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "287",
            "content-type": "application/json",
            "gov-test-scenario": "START_DATE_AFTER_TAX_YEAR_END",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              }
            ],
            "gov-test-scenario": "START_DATE_AFTER_TAX_YEAR_END"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "START_DATE_AFTER_TAX_YEAR_END"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "99daec99-c2ad-44c4-833a-6ea181e99884",
              "payload": {
                "code": "RULE_START_DATE_AFTER_TAX_YEAR_END",
                "message": "The start date cannot be later than the tax year end"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_START_DATE_AFTER_TAX_YEAR_END",
              "message": "The start date cannot be later than the tax year end"
            }
          ]
        },
        "details": {
          "scenario": "START_DATE_AFTER_TAX_YEAR_END",
          "workerStatusCode": 207,
          "itemCode": "state-benefits",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 286
        }
      }
    },
    {
      "name": "Individuals State Benefits API POST /hmrc/annual-data returns TAX_YEAR_NOT_ENDED for the state-benefits item",
      "subtitle": "HMRC Scenario: TAX_YEAR_NOT_ENDED. Simulates the scenario where the tax year has not yet ended.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:25.002102Z",
      "durationMs": 494,
      "steps": [
        {
          "message": "Individuals State Benefits API item returned the controlled HMRC error TAX_YEAR_NOT_ENDED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec3f6af0709a",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "276",
            "content-type": "application/json",
            "gov-test-scenario": "TAX_YEAR_NOT_ENDED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              }
            ],
            "gov-test-scenario": "TAX_YEAR_NOT_ENDED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "TAX_YEAR_NOT_ENDED"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "ed1f9217-81b1-4220-b376-1078868aa337",
              "payload": {
                "code": "RULE_TAX_YEAR_NOT_ENDED",
                "message": "The specified tax year has not yet ended"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_TAX_YEAR_NOT_ENDED",
              "message": "The specified tax year has not yet ended"
            }
          ]
        },
        "details": {
          "scenario": "TAX_YEAR_NOT_ENDED",
          "workerStatusCode": 207,
          "itemCode": "state-benefits",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 346
        }
      }
    },
    {
      "name": "Individuals State Benefits API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the state-benefits item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:25.500264Z",
      "durationMs": 406,
      "steps": [
        {
          "message": "Individuals State Benefits API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec426dc7c9eb",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "282",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "state-benefits",
                "label": "Taxable state benefits",
                "method": "POST",
                "path": "/individuals/state-benefits/WL254177A/2025-26",
                "payload": {
                  "benefitType": "incapacityBenefit",
                  "startDate": "2020-08-03",
                  "endDate": "2020-12-03"
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/state-benefits/WL254177A/2025-26",
              "path": "/individuals/state-benefits/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "benefitType": "incapacityBenefit",
                "startDate": "2020-08-03",
                "endDate": "2020-12-03"
              },
              "hmrcApi": {
                "apiName": "IndividualsStateBenefits",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-state-benefits-api/2.0/oas/page",
                "pathTemplate": "/individuals/state-benefits/{nino}/{taxYear}",
                "path": "/individuals/state-benefits/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "0194b078-1002-49b3-863e-a211ca23795f",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "state-benefits",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 274
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns NOT_FOUND for the loss-claims item",
      "subtitle": "HMRC Scenario: NOT_FOUND. Simulates the scenario where no data is found.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:25.908441Z",
      "durationMs": 514,
      "steps": [
        {
          "message": "Individual Losses API item returned the controlled HMRC error NOT_FOUND.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cec450cf8b0dd",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "289",
            "content-type": "application/json",
            "gov-test-scenario": "NOT_FOUND",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "NOT_FOUND"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NOT_FOUND"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 404,
              "correlationId": "6f874bc1-fccd-4303-9fe4-8545d79a73dd",
              "payload": {
                "code": "MATCHING_RESOURCE_NOT_FOUND",
                "message": "Matching resource not found"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "MATCHING_RESOURCE_NOT_FOUND",
              "message": "Matching resource not found"
            }
          ]
        },
        "details": {
          "scenario": "NOT_FOUND",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 404
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 371
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns DUPLICATE for the loss-claims item",
      "subtitle": "HMRC Scenario: DUPLICATE. Simulates the scenario where the same loss claim already exists.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:50:26.425505Z",
      "durationMs": 51841,
      "steps": [
        {
          "message": "Worker rate limit returned 429. Retrying attempt 2 after 200ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 3 after 400ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 4 after 800ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 5 after 1600ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 6 after 3200ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 7 after 6400ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 8 after 12800ms.",
          "passed": true
        },
        {
          "message": "Worker rate limit returned 429. Retrying attempt 9 after 25600ms.",
          "passed": true
        },
        {
          "message": "Individual Losses API item returned the controlled HMRC error DUPLICATE.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced88d957a62f",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "289",
            "content-type": "application/json",
            "gov-test-scenario": "DUPLICATE",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "DUPLICATE"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "DUPLICATE"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "6fa0332f-2049-4bd6-a94a-6775ba937be0",
              "payload": {
                "code": "RULE_DUPLICATE_SUBMISSION",
                "message": "This claim matches a previous submission"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_DUPLICATE_SUBMISSION",
              "message": "This claim matches a previous submission"
            }
          ]
        },
        "details": {
          "scenario": "DUPLICATE",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 414
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns ACCOUNTING_PERIOD_NOT_ENDED for the loss-claims item",
      "subtitle": "HMRC Scenario: ACCOUNTING_PERIOD_NOT_ENDED. Simulates the scenario where the accounting period has not yet ended.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:18.267405Z",
      "durationMs": 477,
      "steps": [
        {
          "message": "Individual Losses API item returned the controlled HMRC error ACCOUNTING_PERIOD_NOT_ENDED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced8c3f61b375",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "307",
            "content-type": "application/json",
            "gov-test-scenario": "ACCOUNTING_PERIOD_NOT_ENDED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "ACCOUNTING_PERIOD_NOT_ENDED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "ACCOUNTING_PERIOD_NOT_ENDED"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "d3efa07a-7b9d-4a07-8219-4d28b8a25581",
              "payload": {
                "code": "RULE_ACCOUNTING_PERIOD_NOT_ENDED",
                "message": "The accounting period has not yet ended"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_ACCOUNTING_PERIOD_NOT_ENDED",
              "message": "The accounting period has not yet ended"
            }
          ]
        },
        "details": {
          "scenario": "ACCOUNTING_PERIOD_NOT_ENDED",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 347
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns NO_ACCOUNTING_PERIOD for the loss-claims item",
      "subtitle": "HMRC Scenario: NO_ACCOUNTING_PERIOD. Simulates the scenario where there is no accounting period for the claim.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:18.748089Z",
      "durationMs": 508,
      "steps": [
        {
          "message": "Individual Losses API item returned the controlled HMRC error NO_ACCOUNTING_PERIOD.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced8f4ffa9d7a",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "300",
            "content-type": "application/json",
            "gov-test-scenario": "NO_ACCOUNTING_PERIOD",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "NO_ACCOUNTING_PERIOD"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "NO_ACCOUNTING_PERIOD"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "0da22808-619c-43f2-b06e-cf504ff631fa",
              "payload": {
                "code": "RULE_NO_ACCOUNTING_PERIOD",
                "message": "For the year of the claim there is no accounting period"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_NO_ACCOUNTING_PERIOD",
              "message": "For the year of the claim there is no accounting period"
            }
          ]
        },
        "details": {
          "scenario": "NO_ACCOUNTING_PERIOD",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 368
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the loss-claims item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:19.259706Z",
      "durationMs": 407,
      "steps": [
        {
          "message": "Individual Losses API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced926ec0b3fe",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "304",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "0d0a5d86-92eb-4e86-abee-e61ec985dfc5",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 278
        }
      }
    },
    {
      "name": "Individual Losses API POST /hmrc/annual-data returns CSFHL_CLAIM_NOT_SUPPORTED for the loss-claims item",
      "subtitle": "HMRC Scenario: CSFHL_CLAIM_NOT_SUPPORTED. Simulates the scenario where a CSFHL claim is not supported.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:19.669708Z",
      "durationMs": 406,
      "steps": [
        {
          "message": "Individual Losses API item returned the controlled HMRC error CSFHL_CLAIM_NOT_SUPPORTED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced950fb2cc9a",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "305",
            "content-type": "application/json",
            "gov-test-scenario": "CSFHL_CLAIM_NOT_SUPPORTED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "loss-claims",
                "label": "Loss claims",
                "method": "POST",
                "path": "/individuals/losses/WL254177A/loss-claims",
                "payload": {
                  "businessId": "X4IS27198436836",
                  "typeOfLoss": "self-employment",
                  "typeOfClaim": "carry-forward",
                  "taxYearClaimedFor": "2025-26"
                }
              }
            ],
            "gov-test-scenario": "CSFHL_CLAIM_NOT_SUPPORTED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "POST",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/losses/WL254177A/loss-claims",
              "path": "/individuals/losses/WL254177A/loss-claims",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.6.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "CSFHL_CLAIM_NOT_SUPPORTED"
              },
              "body": {
                "businessId": "X4IS27198436836",
                "typeOfLoss": "self-employment",
                "typeOfClaim": "carry-forward",
                "taxYearClaimedFor": "2025-26"
              },
              "hmrcApi": {
                "apiName": "IndividualLosses",
                "operation": "SubmitSupplementalItem",
                "method": "POST",
                "acceptHeader": "application/vnd.hmrc.6.0+json",
                "version": "6.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individual-losses-api/6.0/oas/page",
                "pathTemplate": "/individuals/losses/{nino}/loss-claims",
                "path": "/individuals/losses/WL254177A/loss-claims"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "b8d233d0-741d-4c12-9996-5020af09b957",
              "payload": {
                "code": "RULE_CSFHL_CLAIM_NOT_SUPPORTED",
                "message": "carry-sideways-fhl claim for income sources foreign-property-fhl-eea and uk-property-fhl will not be supported from tax year 25/26"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_CSFHL_CLAIM_NOT_SUPPORTED",
              "message": "carry-sideways-fhl claim for income sources foreign-property-fhl-eea and uk-property-fhl will not be supported from tax year 25/26"
            }
          ]
        },
        "details": {
          "scenario": "CSFHL_CLAIM_NOT_SUPPORTED",
          "workerStatusCode": 207,
          "itemCode": "loss-claims",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 271
        }
      }
    },
    {
      "name": "Individuals Capital Gains Income API POST /hmrc/annual-data returns INVALID_DISPOSAL_DATE for the capital-gains-other item",
      "subtitle": "HMRC Scenario: INVALID_DISPOSAL_DATE. Simulates the scenario where the disposal date is invalid.",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:51:20.078382Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "HMRC sandbox currently rejects the published capital gains date-validation scenarios with RULE_INCORRECT_GOV_TEST_SCENARIO, so this live check is skipped.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC sandbox currently rejects the published capital gains date-validation scenarios with RULE_INCORRECT_GOV_TEST_SCENARIO, so this live check is skipped."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Individuals Capital Gains Income API POST /hmrc/annual-data returns INVALID_ACQUISITION_DATE for the capital-gains-other item",
      "subtitle": "HMRC Scenario: INVALID_ACQUISITION_DATE. Simulates the scenario where the acquisition date is invalid.",
      "status": "skipped",
      "startedAtUtc": "2026-04-27T09:51:20.079649Z",
      "durationMs": 0,
      "steps": [
        {
          "message": "HMRC sandbox currently rejects the published capital gains date-validation scenarios with RULE_INCORRECT_GOV_TEST_SCENARIO, so this live check is skipped.",
          "passed": false,
          "warn": true
        }
      ],
      "data": {
        "request": {},
        "apiRequests": [],
        "response": {
          "payload": []
        },
        "details": {
          "skipReason": "HMRC sandbox currently rejects the published capital gains date-validation scenarios with RULE_INCORRECT_GOV_TEST_SCENARIO, so this live check is skipped."
        },
        "status": {
          "scenario": "skipped"
        }
      }
    },
    {
      "name": "Individuals Capital Gains Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the capital-gains-other item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:20.080532Z",
      "durationMs": 471,
      "steps": [
        {
          "message": "Individuals Capital Gains Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced979d13a44d",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "650",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "capital-gains-other",
                "label": "Other capital gains",
                "method": "PUT",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
                "payload": {
                  "otherGains": [
                    {
                      "assetType": "other-property",
                      "numberOfDisposals": 1,
                      "assetDescription": "PlayPay smoke capital gain",
                      "companyName": "PlayPay",
                      "companyRegistrationNumber": "11111111",
                      "acquisitionDate": "2025-04-07",
                      "disposalDate": "2025-07-10",
                      "disposalProceeds": 150,
                      "allowableCosts": 25,
                      "gainsWithBadr": 0,
                      "gainsWithInv": 0,
                      "gainsBeforeLosses": 125,
                      "losses": 0,
                      "claimOrElectionCodes": [
                        "PRR"
                      ],
                      "amountOfNetGain": 125,
                      "rttTaxPaid": 0
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "otherGains": [
                  {
                    "assetType": "other-property",
                    "numberOfDisposals": 1,
                    "assetDescription": "PlayPay smoke capital gain",
                    "companyName": "PlayPay",
                    "companyRegistrationNumber": "11111111",
                    "acquisitionDate": "2025-04-07",
                    "disposalDate": "2025-07-10",
                    "disposalProceeds": 150,
                    "allowableCosts": 25,
                    "gainsWithBadr": 0,
                    "gainsWithInv": 0,
                    "gainsBeforeLosses": 125,
                    "losses": 0,
                    "claimOrElectionCodes": [
                      "PRR"
                    ],
                    "amountOfNetGain": 125,
                    "rttTaxPaid": 0
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsCapitalGainsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-capital-gains-income-api/3.0/oas/page",
                "pathTemplate": "/individuals/disposals-income/other-gains/{nino}/{taxYear}",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "62361a15-6480-40a8-b999-632e44e7d232",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "capital-gains-other",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 338
        }
      }
    },
    {
      "name": "Individuals Capital Gains Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the capital-gains-other item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:20.554176Z",
      "durationMs": 385,
      "steps": [
        {
          "message": "Individuals Capital Gains Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced9a9d89b3cf",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "653",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "capital-gains-other",
                "label": "Other capital gains",
                "method": "PUT",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
                "payload": {
                  "otherGains": [
                    {
                      "assetType": "other-property",
                      "numberOfDisposals": 1,
                      "assetDescription": "PlayPay smoke capital gain",
                      "companyName": "PlayPay",
                      "companyRegistrationNumber": "11111111",
                      "acquisitionDate": "2025-04-07",
                      "disposalDate": "2025-07-10",
                      "disposalProceeds": 150,
                      "allowableCosts": 25,
                      "gainsWithBadr": 0,
                      "gainsWithInv": 0,
                      "gainsBeforeLosses": 125,
                      "losses": 0,
                      "claimOrElectionCodes": [
                        "PRR"
                      ],
                      "amountOfNetGain": 125,
                      "rttTaxPaid": 0
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "otherGains": [
                  {
                    "assetType": "other-property",
                    "numberOfDisposals": 1,
                    "assetDescription": "PlayPay smoke capital gain",
                    "companyName": "PlayPay",
                    "companyRegistrationNumber": "11111111",
                    "acquisitionDate": "2025-04-07",
                    "disposalDate": "2025-07-10",
                    "disposalProceeds": 150,
                    "allowableCosts": 25,
                    "gainsWithBadr": 0,
                    "gainsWithInv": 0,
                    "gainsBeforeLosses": 125,
                    "losses": 0,
                    "claimOrElectionCodes": [
                      "PRR"
                    ],
                    "amountOfNetGain": 125,
                    "rttTaxPaid": 0
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsCapitalGainsIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-capital-gains-income-api/3.0/oas/page",
                "pathTemplate": "/individuals/disposals-income/other-gains/{nino}/{taxYear}",
                "path": "/individuals/disposals-income/other-gains/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "36443387-14f6-4ab7-abbe-d025e52f61f4",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "capital-gains-other",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 246
        }
      }
    },
    {
      "name": "Individuals Expenses API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the other-expenses item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:20.941497Z",
      "durationMs": 468,
      "steps": [
        {
          "message": "Individuals Expenses API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced9cf89aa62f",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "300",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "other-expenses",
                "label": "Other expenses",
                "method": "PUT",
                "path": "/individuals/expenses/other/WL254177A/2025-26",
                "payload": {
                  "paymentsToTradeUnionsForDeathBenefits": {
                    "customerReference": "PLAYPAY OTHER EXPENSES",
                    "expenseAmount": 45.67
                  }
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/expenses/other/WL254177A/2025-26",
              "path": "/individuals/expenses/other/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.3.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "paymentsToTradeUnionsForDeathBenefits": {
                  "customerReference": "PLAYPAY OTHER EXPENSES",
                  "expenseAmount": 45.67
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsExpenses",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.3.0+json",
                "version": "3.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-expenses-api/3.0/oas/page",
                "pathTemplate": "/individuals/expenses/other/{nino}/{taxYear}",
                "path": "/individuals/expenses/other/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "9f8e1d31-e558-46a5-9907-90201c3788f5",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "other-expenses",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 334
        }
      }
    },
    {
      "name": "Individuals Foreign Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the foreign-income item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:21.412243Z",
      "durationMs": 507,
      "steps": [
        {
          "message": "Individuals Foreign Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ced9fffbab364",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "281",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "foreign-income",
                "label": "Foreign income",
                "method": "PUT",
                "path": "/individuals/foreign-income/WL254177A/2025-26",
                "payload": {
                  "foreignEarnings": {
                    "customerReference": "PLAYPAYFOREIGN1",
                    "earningsNotTaxableUK": 210
                  }
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/foreign-income/WL254177A/2025-26",
              "path": "/individuals/foreign-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "foreignEarnings": {
                  "customerReference": "PLAYPAYFOREIGN1",
                  "earningsNotTaxableUK": 210
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsForeignIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-foreign-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/foreign-income/{nino}/{taxYear}",
                "path": "/individuals/foreign-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "05d62e57-449a-4920-8eb2-686da7472fe8",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "foreign-income",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 372
        }
      }
    },
    {
      "name": "Individuals Foreign Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the foreign-income item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:21.922735Z",
      "durationMs": 508,
      "steps": [
        {
          "message": "Individuals Foreign Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceda31ec3f581",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "278",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "foreign-income",
                "label": "Foreign income",
                "method": "PUT",
                "path": "/individuals/foreign-income/WL254177A/2025-26",
                "payload": {
                  "foreignEarnings": {
                    "customerReference": "PLAYPAYFOREIGN1",
                    "earningsNotTaxableUK": 210
                  }
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/foreign-income/WL254177A/2025-26",
              "path": "/individuals/foreign-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "foreignEarnings": {
                  "customerReference": "PLAYPAYFOREIGN1",
                  "earningsNotTaxableUK": 210
                }
              },
              "hmrcApi": {
                "apiName": "IndividualsForeignIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-foreign-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/foreign-income/{nino}/{taxYear}",
                "path": "/individuals/foreign-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "0d8fe47d-9a87-4c90-bf18-a4c4aae5bd42",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "foreign-income",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 370
        }
      }
    },
    {
      "name": "Individuals Other Income API POST /hmrc/annual-data returns OUTSIDE_AMENDMENT_WINDOW for the other-income item",
      "subtitle": "HMRC Scenario: OUTSIDE_AMENDMENT_WINDOW. Simulates the scenario where the request cannot be completed because it is outside the amendment window.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:22.431542Z",
      "durationMs": 512,
      "steps": [
        {
          "message": "Individuals Other Income API item returned the controlled HMRC error OUTSIDE_AMENDMENT_WINDOW.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceda64ac3c9eb",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "249",
            "content-type": "application/json",
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "other-income",
                "label": "Other income",
                "method": "PUT",
                "path": "/individuals/other-income/WL254177A/2025-26",
                "payload": {
                  "businessReceipts": [
                    {
                      "grossAmount": 199.99,
                      "taxYear": "2025-26"
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "OUTSIDE_AMENDMENT_WINDOW"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/other-income/WL254177A/2025-26",
              "path": "/individuals/other-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "OUTSIDE_AMENDMENT_WINDOW"
              },
              "body": {
                "businessReceipts": [
                  {
                    "grossAmount": 199.99,
                    "taxYear": "2025-26"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsOtherIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-other-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/other-income/{nino}/{taxYear}",
                "path": "/individuals/other-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "67f5b558-2213-4b01-9574-30973851542c",
              "payload": {
                "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
                "message": "You are outside the amendment window"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_OUTSIDE_AMENDMENT_WINDOW",
              "message": "You are outside the amendment window"
            }
          ]
        },
        "details": {
          "scenario": "OUTSIDE_AMENDMENT_WINDOW",
          "workerStatusCode": 207,
          "itemCode": "other-income",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 379
        }
      }
    },
    {
      "name": "Individuals Other Income API POST /hmrc/annual-data returns UNALIGNED_CESSATION_TAX_YEAR for the other-income item",
      "subtitle": "HMRC Scenario: UNALIGNED_CESSATION_TAX_YEAR. Simulates the scenario where the cessation tax year is unaligned.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:22.946312Z",
      "durationMs": 450,
      "steps": [
        {
          "message": "Individuals Other Income API item returned the controlled HMRC error UNALIGNED_CESSATION_TAX_YEAR.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2ceda99ce73d75",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "253",
            "content-type": "application/json",
            "gov-test-scenario": "UNALIGNED_CESSATION_TAX_YEAR",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "other-income",
                "label": "Other income",
                "method": "PUT",
                "path": "/individuals/other-income/WL254177A/2025-26",
                "payload": {
                  "businessReceipts": [
                    {
                      "grossAmount": 199.99,
                      "taxYear": "2025-26"
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "UNALIGNED_CESSATION_TAX_YEAR"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/other-income/WL254177A/2025-26",
              "path": "/individuals/other-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "UNALIGNED_CESSATION_TAX_YEAR"
              },
              "body": {
                "businessReceipts": [
                  {
                    "grossAmount": 199.99,
                    "taxYear": "2025-26"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsOtherIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-other-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/other-income/{nino}/{taxYear}",
                "path": "/individuals/other-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 400,
              "correlationId": "3b74e96c-ce31-409f-8730-fa4694041207",
              "payload": {
                "code": "RULE_UNALIGNED_CESSATION_TAX_YEAR",
                "message": "The tax year provided must be the same as the tax year of income to be taxed"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_UNALIGNED_CESSATION_TAX_YEAR",
              "message": "The tax year provided must be the same as the tax year of income to be taxed"
            }
          ]
        },
        "details": {
          "scenario": "UNALIGNED_CESSATION_TAX_YEAR",
          "workerStatusCode": 207,
          "itemCode": "other-income",
          "itemStatusCode": 400
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 304
        }
      }
    },
    {
      "name": "Individuals Other Income API POST /hmrc/annual-data returns REQUEST_CANNOT_BE_FULFILLED for the other-income item",
      "subtitle": "HMRC Scenario: REQUEST_CANNOT_BE_FULFILLED. Simulates the scenario where the request cannot be fulfilled.",
      "status": "passed",
      "startedAtUtc": "2026-04-27T09:51:23.399649Z",
      "durationMs": 469,
      "steps": [
        {
          "message": "Individuals Other Income API item returned the controlled HMRC error REQUEST_CANNOT_BE_FULFILLED.",
          "passed": true
        }
      ],
      "data": {
        "request": {
          "method": "POST",
          "url": "https://playpay-mtd-auth-worker-dev.playpay.workers.dev/hmrc/annual-data",
          "path": "/hmrc/annual-data",
          "headers": {
            "accept": "application/json",
            "accept-encoding": "gzip, br",
            "authorization": "Bearer eyJhbGciOiJ...K8",
            "cf-connecting-ip": "209.x.x.x",
            "cf-ipcountry": "GB",
            "cf-ray": "9f2cedac6b4b3477",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "connection": "Keep-Alive",
            "content-length": "252",
            "content-type": "application/json",
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED",
            "host": "playpay-mtd-auth-worker-dev.playpay.workers.dev",
            "user-agent": "Dart/3.9 (dart:io)",
            "x-forwarded-proto": "https",
            "x-playpay-trace": "1",
            "x-real-ip": "209.x.x.x"
          },
          "body": {
            "items": [
              {
                "code": "other-income",
                "label": "Other income",
                "method": "PUT",
                "path": "/individuals/other-income/WL254177A/2025-26",
                "payload": {
                  "businessReceipts": [
                    {
                      "grossAmount": 199.99,
                      "taxYear": "2025-26"
                    }
                  ]
                }
              }
            ],
            "gov-test-scenario": "REQUEST_CANNOT_BE_FULFILLED"
          }
        },
        "apiRequests": [
          {
            "relayed-request": {
              "method": "PUT",
              "url": "https://test-api.service.hmrc.gov.uk/individuals/other-income/WL254177A/2025-26",
              "path": "/individuals/other-income/WL254177A/2025-26",
              "headers": {
                "authorization": "Bearer 403be4fa2d5...c3",
                "accept": "application/vnd.hmrc.2.0+json",
                "content-type": "application/json",
                "gov-client-connection-method": "MOBILE_APP_DIRECT",
                "gov-client-device-id": "playpay-bdd...ce",
                "gov-client-timezone": "UTC+00:00",
                "gov-client-user-ids": "os=playpay-bdd...ke",
                "gov-uk-originator-id": "playpay-bdd...ke",
                "gov-vendor-forwarded": "by=203.x.x.x&for=198.x.x.x",
                "gov-vendor-license-ids": "playpay=hmrc-bdd-sm...se",
                "gov-vendor-product-name": "PlayPay",
                "gov-vendor-public-ip": "198.x.x.x",
                "gov-vendor-version": "playpay=hmrc-bdd-smoke-1",
                "Gov-Test-Scenario": "REQUEST_CANNOT_BE_FULFILLED"
              },
              "body": {
                "businessReceipts": [
                  {
                    "grossAmount": 199.99,
                    "taxYear": "2025-26"
                  }
                ]
              },
              "hmrcApi": {
                "apiName": "IndividualsOtherIncome",
                "operation": "SubmitSupplementalItem",
                "method": "PUT",
                "acceptHeader": "application/vnd.hmrc.2.0+json",
                "version": "2.0",
                "documentationUrl": "https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/individuals-other-income-api/2.0/oas/page",
                "pathTemplate": "/individuals/other-income/{nino}/{taxYear}",
                "path": "/individuals/other-income/WL254177A/2025-26"
              }
            },
            "hmrc-response": {
              "status": 422,
              "correlationId": "4f982210-c56d-46b2-b2b9-82d3341e367c",
              "payload": {
                "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
                "message": "Custom (will vary in production depending on the actual error)"
              }
            }
          }
        ],
        "response": {
          "status": 207,
          "payload": [
            {
              "code": "RULE_REQUEST_CANNOT_BE_FULFILLED",
              "message": "Custom (will vary in production depending on the actual error)"
            }
          ]
        },
        "details": {
          "scenario": "REQUEST_CANNOT_BE_FULFILLED",
          "workerStatusCode": 207,
          "itemCode": "other-income",
          "itemStatusCode": 422
        },
        "status": {
          "scenario": "passed",
          "http": 207,
          "durationMs": 322
        }
      }
    }
  ]
}